上游git并跟踪远程分支

时间:2015-11-06 18:30:34

标签: git

我有点想知道从git命名“上游”。

如果我创建一个本地分支

git checkout -b branch_local

并想把它推到某个地方

git push remote_id branch_local:branch_remote

如果我查看分支所在的远程:

git branch -vv --all

我看到没有任何设定。如果我尝试:

git pull

我得到了

If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=<remote>/<branch> branch_local

为什么我必须设置“上游”以获得“下游”设置? 也许我还没有理解是否有额外的下游设置?

2 个答案:

答案 0 :(得分:1)

&#34;上游&#34;指的是默认情况下分支将推拉的遥控器。这也称为&#34;远程跟踪分支&#34;。有时Git会在您创建分支时为您设置此项,但这取决于您的配置方式。

为了确保设置上游分支,请在第一次推送时使用git push -u

git push -u remote branch_local:branch_remote

您可以更改branch.autoSetupMerge以使Git自动执行此操作。当您从true远程分支分支时,git co -b foo remote/foo将设置跟踪。 always将始终进行跟踪。

答案 1 :(得分:0)

你需要告诉git让你的本地分支跟踪远程分支。 Git是一个分布式系统,你可以创建大量不跟踪任何上游变化的本地分支。

您所做的是将本地分支推送到远程存储库,但本地仍然没有跟踪上游。本身没有“下游”,上游是您正在跟踪的远程存储库的git术语。一旦你设置了它,push和pull都应该工作(假设fetch和push urls是相同的,但我猜他们正处于这个阶段)