上游
GIT中的一個重要的方面是,它是分佈式的,並且被分佈在很大程度上意味着有在系統中沒有固有的「上行流」或「下行流」。這僅僅意味着沒有絕對的上游回購或下游回購。
這些概念是總有兩個回購之間的相對並依賴於雙向數據流:
如果「myLocalRepo
」宣佈「companyRepo
」作爲遠程一個,那麼:
要從上游拉「 companyRepo
「(」 companyRepo
「是‘上游從你’,你是」爲companyRepo
下游「)。 你是推到上游(「companyRepo
」仍然是‘上游’,其中的信息現在可以追溯到)。 注意「from」和「for」:你不只是「下游」,你是「下游/ for」,因此是相對的方面。
指針
它實際上具有相同的含義,因爲它在計算機編程。指針是存儲器中地址的指示符。
在Git世界中,許多實現實際上是用Pointers
的概念建模和開發的。
例如,作爲實際指針的HEAD
始終指向您檢出的當前分支上的最後一個提交。這同樣適用於tags
和reflog
的結果。
在該圖中,爲什麼是紅色主框上方的修補程序?
讓我們只專注於解釋爲fast-forward
當您嘗試合併一個帶有提交提交,可以通過下面的第一次提交的歷史可以達到,Git會通過移動指針簡化的東西前鋒因爲沒有發散的工作合併到一起 - 這就是所謂的「快進」。
的圖和解釋試圖解釋的是,當你創建一個新的分支,你有所有最後一個分支的提交歷史。現在你繼續在新分支上工作,例如做3個新的提交。當與最後一個分支合併時,git不必將所有新分支提交歷史都複製回來。相反,它只需複製三個新的提交併將指針移動三個提交以完成合並。這被稱爲快速強制機制。
的master
紅色框包含所有的歷史最高時創建的hotfix
新分支的時刻。現在,當合併發生時,主服務器和修補程序都指向相同的提交。
主紅色框實際上在時間上比修補程序,併爲hotfix
分支創建一個基準點以上。
上游分支:http://stackoverflow.com/a/6244487/6309 – VonC
請評論我的回答如果需要編輯或標記爲接受。 –