zoukankan      html  css  js  c++  java
  • git将本地已经存在的分支和一个指定的远端分支建立映射关系

    Make an existing Git branch track a remote branch?

    Given a branch foo and a remote upstream:

    As of Git 1.8.0:

    git branch -u upstream/foo
    

    Or, if local branch foo is not the current branch:

    git branch -u upstream/foo foo
    

    Or, if you like to type longer commands, these are equivalent to the above two:

    git branch --set-upstream-to=upstream/foo
    
    git branch --set-upstream-to=upstream/foo foo
    

    As of Git 1.7.0:

    git branch --set-upstream foo upstream/foo
    

    Notes:

    All of the above commands will cause local branch foo to track remote branch foo from remote upstream. The old (1.7.x) syntax is deprecated in favor of the new (1.8+) syntax. The new syntax is intended to be more intuitive and easier to remember.

    官方文档:git-branch(1) Manual Page

    -u <upstream>

    --set-upstream-to=<upstream>

    Set up <branchname>'s tracking information

    so <upstream> is considered <branchname>'s upstream branch.

    If no <branchname> is specified, then it defaults to the current branch.

    假定,需要把foo分支,和远端的foo分支进行映射,远端名称为upstream

    如果当foo分支不是当前分支,使用如下命令

    git branch -u upstream/foo foo

    如果foo分支是当前分支

    git branch -u upstream/foo

    ==============================================================================

    在checkout分支的时候,就进行映射

    he ProGit book has a very good explanation:

    Tracking Branches

    Checking out a local branch from a remote branch automatically creates what is called a tracking branch. Tracking branches are local branches that have a direct relationship to a remote branch. If you’re on a tracking branch and type git push, Git automatically knows which server and branch to push to. Also, running git pull while on one of these branches fetches all the remote references and then automatically merges in the corresponding remote branch.

    When you clone a repository, it generally automatically creates a master branch that tracks origin/master. That’s why git push and git pull work out of the box with no other arguments. However, you can set up other tracking branches if you wish — ones that don’t track branches on origin and don’t track the master branch. The simple case is the example you just saw, running git checkout -b [branch] [remotename]/[branch]. If you have Git version 1.6.2 or later, you can also use the --track shorthand:

    $ git checkout --track origin/serverfix
    Branch serverfix set up to track remote branch refs/remotes/origin/serverfix.
    Switched to a new branch "serverfix"
    

    To set up a local branch with a different name than the remote branch, you can easily use the first version with a different local branch name:

    $ git checkout -b sf origin/serverfix
    Branch sf set up to track remote branch refs/remotes/origin/serverfix.
    Switched to a new branch "sf"
    

    Now, your local branch sf will automatically push to and pull from origin/serverfix.

    查看本地分支和远端分支的映射情况git branch -vv

    查看映射

    Administrator@LuJunTao MINGW64 /d/SourceCode/GameSourceCode/Hearthstone-Deck-Tracker (chucklu_zhCN)
    $ git branch -vv
    chucklu_master 8739b35 [chucklu/master] v0.10.16 (mainwindow topmost fix)
    * chucklu_zhCN d5dbcc8 1.修改默认语言为中文zhCN
    master 8739b35 [epix37/master] v0.10.16 (mainwindow topmost fix)
    ui-translation cade481 [epix37/ui-translation] a few more resx entries

    发现chucklu_zhCN分支没有和远端建立映射关系

    添加映射

    Administrator@LuJunTao MINGW64 /d/SourceCode/GameSourceCode/Hearthstone-Deck-Tracker (chucklu_zhCN)
    $ git branch -u chucklu/chucklu_zhCN
    Branch chucklu_zhCN set up to track remote branch chucklu_zhCN from chucklu.

    再次查看映射

    Administrator@LuJunTao MINGW64 /d/SourceCode/GameSourceCode/Hearthstone-Deck-Tracker (chucklu_zhCN)
    $ git branch -vv
    chucklu_master 8739b35 [chucklu/master] v0.10.16 (mainwindow topmost fix)
    * chucklu_zhCN d5dbcc8 [chucklu/chucklu_zhCN: ahead 1] 1.修改默认语言为中文zhCN     //可以发现这个已经映射成功了
    master 8739b35 [epix37/master] v0.10.16 (mainwindow topmost fix)
    ui-translation cade481 [epix37/ui-translation] a few more resx entries

    remove the remote tracking branch

    https://stackoverflow.com/questions/3046436/how-do-you-stop-tracking-a-remote-branch-in-git

    To remove the upstream for the current branch do:

    $ git branch --unset-upstream
    

    This is available for Git v.1.8.0 or newer.

  • 相关阅读:
    阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_3 Mybatis中编写dao实现类的使用-修改删除等其他操作
    阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_2 Mybatis中编写dao实现类的使用-保存操作
    阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_1 Mybatis中编写dao实现类的使用方式-查询列表
    阶段3 1.Mybatis_05.使用Mybatis完成CRUD_9 Mybatis中的返回值深入-解决实体类属性和数据库列名不对应的两种方式
    阶段3 1.Mybatis_05.使用Mybatis完成CRUD_8 Mybatis中的返回值深入-调整实体类属性解决增和改方法的报错
    阶段3 1.Mybatis_05.使用Mybatis完成CRUD_7 Mybatis中参数的深入-使用实体类的包装对象作为查询条件
    阶段3 1.Mybatis_05.使用Mybatis完成CRUD_6 Mybatis的CRUD-保存操作的细节-获取保存数据的id
    strace命令【转】
    I2S协议
    自动登录脚本
  • 原文地址:https://www.cnblogs.com/chucklu/p/4730745.html
Copyright © 2011-2022 走看看