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

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


当前回答

我这样做是因为使用-u选项推送的副作用,如

$ git push -u origin branch-name

等效的长选项是--set upstream。

gitbranch命令也理解--set upstream,但它的使用可能会令人困惑。1.8.0版修改了界面。

gitbranch-set-upstream已被弃用,可能会在较远的将来被删除。git分支[-u|--setupstreamto]是以更合理的参数顺序引入的。…很容易说git-branch——set-upstream-origin/master,但这告诉git安排本地分支“origin/matter”与当前签出的分支集成,这不太可能是用户的意思。该选项已弃用;改为使用新的--set upstream to(带有一个短而甜的-u)选项。

假设您签出了一个本地foo分支,并希望它使用与其上游同名的分支。让这一切发生

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

其他回答

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

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

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

git签出分支名称

例子:

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

gitbranch—设置nameOfRemoteBranch的上游

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

使用示例:

确保您运行:

git config push.default tracking

能够顺利推进

对于git版本2.25.1,请使用以下命令:

git push --set-upstream origin <local_branch_name>

为了避免记住每次收到信息时需要做什么:

请指定要合并的分支。参见git pull(1)详细信息。.....

可以使用以下脚本,该脚本将原点设置为当前分支的上游。

在我的例子中,我几乎从未将原点以外的其他东西设置为默认上游。此外,我几乎总是为本地和远程分支保留相同的分支名称。因此,以下内容适合我:

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

编辑.git/config可能是最简单、最快的方法。无论如何,这就是处理远程分支的Git命令所做的。

如果你不想手动处理这个文件(这并不难),你可以一直使用git-config来完成……但同样,这只会编辑.git/config文件。

当然,在使用git签出时,有一些方法可以自动跟踪远程分支(例如,通过传递--track标志),但这些命令可以处理新的分支,而不是现有的分支。