Bei der Einführung von Branches im Buch „Pro Git“ wird das Konzept der Upstream-Branches erwähnt.
Durch das Auschecken eines lokalen Zweigs von einem Remote-Tracking-Zweig aus wird automatisch ein Zweig namens „Tracking-Zweig“ (manchmal auch „Upstream-Zweig“ genannt) erstellt
Von hier aus können wir sehen, dass sich der hier erwähnte Upstream-Zweig auf einen lokalenZweig bezieht, der von einem Remote-Zweig ausgecheckt wurde.
Wenn jedoch später in diesem Buch von „Upstream-Abkürzung“ die Rede ist, bezieht sich dieser Upstream-Zweig nicht auf den lokalenZweig:
verwenden, wenn Sie möchtenNachdem Sie den Tracking-Zweig eingerichtet haben, können Sie ihn über die Tastenkombination @{upstream} oder @{u} referenzieren. Wenn Sie sich also im Master-Zweig befinden und dieser origin/master verfolgt, können Sie git merge @{u} anstelle von git merge origin/master
Wenn wir Git verwenden und in das Remote-Warehouse pushen, stoßen wir häufig auf das Konzept der Upstream-Zweige. Wenn Sie beispielsweise zum ersten Mal in das Remote-Warehouse pushen, fügen Sie keine Parameter hinzu:
git push
Dann fordert Git Sie sofort auf, den Upstream-Zweig einzurichten:
fatal: Der aktuelle Branch-Master hat keinen entsprechenden Upstream-Branch.
Um den aktuellen Zweig zu pushen und die Verfolgung mit dem Remote-Upstream einzurichten, verwenden Sie
git push --set-upstream origin master
Der Upstream-Zweig scheint sich hier auch auf den Remote-Zweig zu beziehen.
Es stellt sich also die Frage, was genau ein „Upstream Branch“ ist? Das Buch „Pro Git“ gibt kein genaues Konzept, und im Internet heißt es auch, dass der Upstream-Zweig nur ein relatives Konzept sei.
简单来说 upstream 就是于你本地分支对应的远端分支,push pull 或 fetch 时如果不指定远端分支,就会使用 upstream 分支。
您好,首先我没有看过任何的Git的书籍,但是我敢说我对Git操作非常精通,都是从长期实践中摸爬滚打过来的。我也许能明白你的困惑!
首先大脑不能停留在以前SVN上,就是中央仓库的概念!首先,Git中没有中央仓库,那么问题来了,你本地的代码分之要提交到远程的哪个分之呢?
git branch --set-upstream branch
这个branch就是远端的branch,将一个已存在的分支设定成跟踪远端的分支。在你设定了远端的跟踪分支后,你才能正常简约地敲命令: git pull; git psuh;比如当你第一次推送远程时,你并未加任何参数:
git push
那么git就会立刻提示你设置上游分支:
那么你就需要 git push origin master; 默认当前远端分支为主分支
根据平时使用的情况来看 上游分支就是指的远程库的一个分支,这个库可以github中的某一账号,也可以是某台服务器上的一个目录(包括本地),set-upstream 就是为了将当前分支和其他库中的分支对接,这样才能共同修改一套代码,而不是只是自己在这自high