我知道如何建立一个跟踪远程分支的新分支,但是 如何使现有分支跟踪远程分支?
我知道我可以编辑 .git/config
文件,但似乎应该有一个更简单的方法。
我知道如何建立一个跟踪远程分支的新分支,但是 如何使现有分支跟踪远程分支?
我知道我可以编辑 .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://...
现在配置master来跟踪:
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
(短而甜蜜-u
)而是选项。
说你有一个本地人 foo
分支,并希望它以与其上游相同的名称处理分支。用这个来实现
$ git branch foo
$ git branch --set-upstream-to=origin/foo
要不就
$ git branch --set-upstream-to=origin/foo foo
你可能会发现 git_remote_branch
工具很有用。它提供了用于创建,发布,删除,跟踪和重命名远程分支的简单命令。一个很好的功能是你可以问一个 grb
命令解释它将执行什么git命令。
grb explain create my_branch github
# git_remote_branch version 0.3.0
# List of operations to do to create a new remote branch and track it locally:
git push github master:refs/heads/my_branch
git fetch github
git branch --track my_branch github/my_branch
git checkout my_branch
实际上,对于已接受的工作答案:
git remote add upstream <remote-url>
git fetch upstream
git branch -f --track qa upstream/qa
# OR:
git branch --set-upstream qa upstream/qa
我相信,早在Git 1.5.x你就可以建立一个本地分支 $BRANCH
跟踪远程分支 origin/$BRANCH
, 喜欢这个。
鉴于 $BRANCH
和 origin/$BRANCH
存在,你目前还没有签出 $BRANCH
(如果你有,请切换),做:
git branch -f --track $BRANCH origin/$BRANCH
这会重新创建 $BRANCH
作为跟踪分支。该 -f
尽管如此强迫创作 $BRANCH
现有的。 --track
如果有通常的默认值(即git-config参数),则是可选的 branch.autosetupmerge
是真的)。
请注意,如果 origin/$BRANCH
还不存在,您可以通过推送本地创建它 $BRANCH
进入远程存储库:
git push origin $BRANCH
接下来是上一个命令,将本地分支推进到跟踪分支。
1-使用以下方法更新本地元数据: git fetch --all
2-使用以下方法显示远程和本地分支: git branch -a ,请参阅以下屏幕截图
3-切换到目标分支,即要与远程链接:使用
git checkout branchName
例子:
4-使用以下方法将本地分支链接到远程分支:
git branch --set-upstream-to nameOfRemoteBranch
N.B: nameOfRemoteBranch :从步骤2“git branch -r”的输出中复制
使用示例:
确保你运行:
git config push.default tracking
能够推动无故障