我知道如何创建跟踪远程分支的新分支,但如何使现有分支跟踪远程分支?

我知道我可以编辑.git/config文件,但似乎应该有一种更简单的方法。


当前回答

简而言之

git branch --set-upstream yourLocalBranchName origin/develop

这将使您的LocalBranchName跟踪名为develop的远程分支。

其他回答

我使用以下命令(假设您的本地分支名称是“branch-namelocal”,而远程分支名称为“branchnameremote”):

$ git branch --set-upstream-to=origin/branch-name-remote branch-name-local

如果本地和远程分支具有相同的名称,则只需执行以下操作:

$ git branch --set-upstream-to=origin/branch-name branch-name

这不是对这个问题的直接回答,但我想在这里为任何在尝试配置上游分支时可能遇到与我相同问题的人留下一条注释。

小心push.default。

对于较旧的git版本,默认值为匹配,如果您有以下情况,则会导致非常不理想的行为:

本地分支机构“主”跟踪到原点/主

远程分支“上游”跟踪到上游/主分支

如果您在“上游”分支上尝试“git push”,则使用push.default匹配,git将自动尝试将本地分支“master”合并为“upstream/master”,从而导致大量混乱。

这会产生更理智的行为:

git-config—全局push.default上游

使用“--track”选项

在一次git拉动后:git checkout--track<远程分支名称>或:git获取和git签出<分支名称>

1-使用:git fetch--all更新本地元数据

2-使用gitbranch-a显示远程和本地分支,请参见以下屏幕截图

3-切换到要与远程链接的目标分支:使用

git签出分支名称

例子:

4-使用以下方法将本地分支链接到远程分支:

gitbranch—设置nameOfRemoteBranch的上游

N.B:nameOfRemoteBranch:从步骤2“gitbranch-r”的输出中复制

使用示例:

或简单地通过:

如果您还不在分支中,请切换到分支:

[za]$ git checkout branch_name

run

[za]$ git branch --set-upstream origin branch_name
Branch origin set up to track local branch brnach_name by rebasing.

您准备好:

 [za]$ git push origin branch_name

您可以查看配置文件,看看是什么通过运行以下命令来跟踪什么:

 [za]$ git config -e

很高兴知道这一点,它显示了哪些分支被跟踪,哪些分支没有被跟踪。:

  [za]$ git remote show origin