2010-12-17 160 views
11

何時提取網址和推送網址對於某個遠程計算機而言不是相同的?Git「抓取URL」和「推送網址」,有什麼區別?

例如,當我運行git remote show central爲遠程命名中心,輸出的樣子:

* remote central 
    Fetch URL: [email protected]:/home/aoberoi/Repositories/example.git 
    Push URL: [email protected]:/home/aoberoi/Repositories/example.git 
    HEAD branch: master 
    Remote branch: 
    master tracked 

我只是不明白爲什麼我會從以下獲取和推到兩個不同的網址,什麼類型的工作流程是否適用於?

回答

10

我不知道你的意思,因爲你的例子包括2 相同網址,但網址推拉可以不同,因爲:

  • 協議問題:看Git protocols:該網址會是略有不同因爲不是每個協議支持推送業務(HTTP例如,除了在smart http情況下)
  • 中間回購:你可以推到廣告不同的存儲庫將成爲真正的「中央」回購與您的回購之間的「中間人」。然後可以執行某些操作(例如通過post-receive鉤子),然後如果這些操作(如「單元測試」,「靜態代碼分析」等)將提交到那裏的「實際」遠程... )成功通過。
    例如,這樣的用法見:
    What is the cleverest use of source repository that you have ever seen?」。

話雖這麼說,commit 697f652(GIT 2.3.1+,Q1/Q2 2015)由Git的維護者Junio C Hamano (gitster)做提及:

這似乎是一個常見的錯誤嘗試使用單個遙控器(例如'起源')從一個地方(即upstream)獲取,同時推向另一個地方(即您的發佈點)。

這永遠不會令人滿意地工作,並且很容易理解爲什麼如果你考慮在這樣的世界裏什麼refs/remotes/origin/*意味着什麼。它從根本上不能反映現實。
如果它跟隨你的上游狀態,它不能匹配你發佈的內容,反之亦然。

的文檔並不清楚「remote.<nick>.pushURL」和「remote.<nick>.URL」有來命名通過不同的傳輸訪問相同的資源庫,不是兩個單獨的存儲庫

0

我認爲如果您想要一個「分期」回購貢獻者會推動,那麼其他人會在審覈和批准後將更改從主要回購協議推到主回購庫。所以你可以從主要的回購倉庫中取貨,然後推到分期回購倉庫。

相關問題