[英]Does git pull affect remote tracking branch?
我們知道git pull = git fetch + git merge。 但是我對git merge的理解是,它只影響您要合並到的分支,而不影響您要從中合並的分支。
因此,對於git pull,我想它看起來像這樣:
git fetch origin
git merge origin/master
在這種情況下,原點的新更改將在master上重放,但原點/ master不會將更改提交給本地master分支。 git pull是否確保git合並后,遠程跟蹤分支(源/主節點)包含master中所做的所有新更改,或者在執行git push時完成?
簡短的答案很簡單:不,遠程跟蹤分支不受影響。
考慮諸如origin/master
類的遠程跟蹤分支的一個好方法是,您的git幾乎一直都與(git)git無關,除非您告訴git調用其git並進行協調。 可以通過Internet電話調用遠程命令的命令是git fetch
和git push
(當然還有初始的git clone
)。 因此, 自上次您的git與其同步以來 , origin/master
始終是“ master
所在的原始位置”。
當你獲取或推, 那么你的git得到的什么都及其分支機構是他們的git的想法,並更新你的遠程跟蹤分支。 如果您還具有這些SHA-1 ID,它將把它們設置為當時遠程所擁有的任何東西。 1您可以限制git更新的分支,但是直接git fetch
的默認設置是獲取所有遠程的當前信息。
還有一個命令2可以打電話給遙控器,但不會更新git的遠程跟蹤分支: git ls-remote
進行獲取或推送的第一步,然后僅顯示它從遙控器獲得的所有參考名稱。 嘗試一下,它純粹是參考信息,但可以讓您了解它的真正工作原理。
1您的git無法將您自己的遠程跟蹤分支指向您沒有的SHA-1。 由於git fetch
通常會帶來一切,因此它是進行主要更新的工具。 使用git push
您要求遙控器將其SHA-1 ID 更改為git發送過來的內容,因此,如果它說“是”,則按照定義,您也擁有這些對象,但這僅對您發送的分支和/或標簽有保證結束,而不是其他分支機構。
2實際上有幾種,但只有一種可以嘗試進行說明了。 為了完整git remote show
,我會提到git remote show
有時也會打電話給遙控器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.