让现有的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

上一篇: Make an existing Git branch track a remote branch?

下一篇: How to clone all remote branches in Git?