我有点想知道从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
为什么我必须设置“上游”以获得“下游”设置? 也许我还没有理解是否有额外的下游设置?
答案 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是相同的,但我猜他们正处于这个阶段)