Git中上游分支的概念是什麼?
漂亮男人
漂亮男人 2017-06-26 10:49:32
0
3
2479

《Pro git》一書中在介紹分支時,提到了上游分支的概念。

從一個遠端追蹤分支檢出一個本地分支會自動建立一個叫做「追蹤分支」(有時也叫做「上游分支」)

#從這裡,我們可以看到這裡所說的上游分支是指從遠端某個分支檢出的一個本地分支。

但是,本書後面提到「上游捷徑」時,這個上游分支又不是指本地分支:

當設定好追蹤分支後,可以透過 @{upstream} 或 @{u} 捷徑來引用它。所以在master分支時並且它正在追蹤 origin/master 時,如果願意的話可以使用 git merge @{u} 來取代 git merge origin/master

我們在使用git時,推送到遠端倉庫時,常常也會遇到上游分支這個概念,例如當你第一次推送遠端時,你並未加任何參數:

git push

那麼git就會立刻提示你設定上游分支:

fatal: 目前分支 master 沒有對應的上游分支。

為推送目前分支並建立與遠端上游的跟踪,使用

git push --set-upstream origin master

這裡的上游分支好像也是指遠端的分支。

於是問題就來了,到底什麼叫做叫做「上游分支」呢? 《Pro git》一書中並未給予準確的概念;而網路上也有說上游分支只是個相對概念。

漂亮男人
漂亮男人

全部回覆(3)
仅有的幸福

簡單來說 upstream 就是於你本地分支對應的遠端分支,push pull 或 fetch 時如果不指定遠端分支,就會使用 upstream 分支。

typecho

您好,首先我沒有看過任何的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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板