我知道如何创建跟踪远程分支的新分支,但如何使现有分支跟踪远程分支?
我知道我可以编辑.git/config文件,但似乎应该有一种更简单的方法。
我知道如何创建跟踪远程分支的新分支,但如何使现有分支跟踪远程分支?
我知道我可以编辑.git/config文件,但似乎应该有一种更简单的方法。
当前回答
对于像我这样只想将本地分支名称与远程分支名称同步的任何人,这里有一个方便的命令:
git branch -u origin/$(git rev-parse --abbrev-ref HEAD)
其他回答
我相信,早在Git1.5.x中,您就可以让本地分支$branch跟踪远程分支源/$BRANCCH,就像这样。
鉴于$BRANCH和origin/$BRANCCH存在,并且您当前尚未签出$BRANCH(如果有,请切换),请执行以下操作:
git branch -f --track $BRANCH origin/$BRANCH
这将重新创建$BRANCH作为跟踪分支。尽管$BRANCH已经存在,但-f强制创建--如果使用了通常的默认值(即git-config参数branch.atosetupmerge为true),则跟踪是可选的。
注意,如果origin/$BRANCH还不存在,您可以通过将本地$BRANCCH推入远程存储库来创建它,方法是:
git push origin $BRANCH
然后是上一个命令,将本地分支提升为跟踪分支。
这也行
git branch --set-upstream-to=/< remote>/< branch> < localbranch>
确保您运行:
git config push.default tracking
能够顺利推进
在这里,使用github和git版本2.1.4,只需执行以下操作:
$ git clone git@github.com:user/repo.git
遥控器由itelsef提供,即使没有本地链接:
$ git remote show origin
* remote origin
Fetch URL: git@github.com:user/repo.git
Push URL: git@github.com:user/repo.git
HEAD branch: master
Remote branches:
develop tracked <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)
但当然,仍然没有本地分支机构:
$ git branch
* master <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
看见现在,如果您只是签出develp,它将自动执行魔术:
$ git checkout develop
Branch develop set up to track remote branch develop from origin.
Switched to a new branch 'develop'
很容易!
总结只需运行以下两个命令:
$ git clone git@github.com:user/repo.git
$ git checkout develop
对于git版本2.25.1,请使用以下命令:
git push --set-upstream origin <local_branch_name>