如何将现有的Git分支与远程分支关联?

4007

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

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


31
如下所述,对于现有的分支,您可以使用git push -u origin 分支名称。该命令可以将本地分支推送到远程仓库,并将其设置为默认上游分支。 - Zags
6
如果本地分支是当前分支,并且本地分支尚未跟踪远程分支,那么git pull命令通常会提供有关设置跟踪信息的适当命令的帮助信息。 - billrichards
92
当一个人在学习Git时,被给出一个指向Git文档的链接是很烦人的。那份文档似乎是为那些已经知道如何使用Git的人编写的。 - Felipe Alvarez
15
从 Git 2.10 开始,您应该首先切换到想要的本地分支,然后执行以下命令 git branch --set-upstream-to origin/<branch> - Mahdi Javaheri
5
--set-upstream 产生错误:fatal: the '--set-upstream' option is no longer supported. Please use '--track' or '--set-upstream-to' instead. 因此,目前有效的命令是 git branch --set-upstream-to origin/<branch name>。请注意,该命令不再支持--set-upstream选项,而应改用--track--set-upstream-to选项。 - Super Jade
显示剩余4条评论
23个回答

1

如果你和我一样,只想将本地分支名称与远程分支名称同步,这里有一个方便的命令:

git branch -u origin/$(git rev-parse --abbrev-ref HEAD)

0
为了避免每次收到以下消息时都需要记住需要做什么:

Please specify which branch you want to merge with. See git-pull(1)
for details.
.....

您可以使用以下脚本,为您所在的当前分支设置原始上游:

在我的情况下,我几乎从不将除 origin 以外的任何内容设置为默认上游。并且我几乎总是将本地分支和远程分支保持相同的名称。因此,以下内容适合我:

#!/bin/bash
# scriptname: git-branch-set-originupstream
current_branch="$(git branch | grep -oP '(?<=^\* )(.*)$')"
upstream="origin/$current_branch"
git branch -u "$upstream"

1
在 git 2.37+ 中,您可能需要使用 git config --global branch.autoSetupMerge simplegit config --global push.autoSetupRemote true。在检出时,仅当本地分支名称与远程匹配时才会获得跟踪,并且在 git push 时,新的本地分支将自动创建新的远程分支,并进行跟踪。 - Tao

-2

这也可以工作

git branch --set-upstream-to=/< remote>/< branch> < localbranch>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接