簡體   English   中英

git pull是否會影響遠程跟蹤分支?

[英]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 fetchgit 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM