让现有的Git分支跟踪远程分支?
我知道如何创建一个跟踪远程分支的新分支,但是如何使现有分支跟踪远程分支?
我知道我可以编辑.git/config
文件,但似乎应该有一个更简单的方法。
给定一个分支foo
和一个远程upstream
:
从Git 1.8.0开始:
git branch -u upstream/foo
或者,如果本地分支foo
不是当前分支:
git branch -u upstream/foo foo
或者,如果您想输入较长的命令,则这些命令与上述两个命令相同:
git branch --set-upstream-to=upstream/foo
git branch --set-upstream-to=upstream/foo foo
从Git 1.7.0开始:
git branch --set-upstream foo upstream/foo
笔记:
以上所有的命令都将引起局部分支foo
跟踪远程分支foo
从远程upstream
。 旧的(1.7.x)语法不赞成使用新的(1.8+)语法。 新的语法旨在更直观,更易于记忆。
另请参阅:为什么我需要始终执行`--set-upstream`?
您可以执行以下操作(假设您在主服务器上签出并希望推送到远程分支主服务器):
如果您还没有设置“遥控器”,请设置它
git remote add origin ssh://...
现在配置主人知道跟踪:
git config branch.master.remote origin
git config branch.master.merge refs/heads/master
并推送:
git push origin master
我这样做是因为使用-u
选项推送的副作用
$ git push -u origin branch-name
等效的长期选项是--set-upstream
。
git-branch
命令也可以理解--set-upstream
,但是它的使用可能会造成混淆。 版本1.8.0修改了接口。
git branch --set-upstream
已被弃用,并可能在相对较远的将来被删除。 git branch [-u|--set-upstream-to]
已经引入了一系列参数。
...
说git branch --set-upstream origin/master
是很诱人的,但它告诉Git安排本地分支“origin / master”与当前检出的分支集成,这很不可能是用户的意思。 该选项已弃用; 使用新的--set-upstream-to
(带有一个short-and-sweet -u
)选项。
假设你有一个本地的foo
分支,并且希望它以与其上游相同的名称来对待分支。 做到这一点
$ git branch foo
$ git branch --set-upstream-to=origin/foo
要不就
$ git branch --set-upstream-to=origin/foo foo
链接地址: http://www.djcxy.com/p/75.html