2017-09-06 68 views
0

我想從本地的遠程回購中獲得最新的更新。我通常會在主分支上做混帳。我現在已經創建了一個新的分支(沒有在本地代碼中添加/更改任何東西)。如果我做了git pull,最新的遠程修改會反映在我的新本地分支上,還是應該刪除它並在git pull之後重新創建它? 謝謝!創建一個新分支後,我需要查看最新的更改,從主服務器到我的本地倉庫執行git pull是否安全?

+0

是,在當地的分支機構做了'git的pull'當然會更新。除此之外,你還有一個具體的問題嗎? –

回答

0

Git會嘗試將遠程主機合併到您的lokal新分支。由於您沒有任何更改,您只需將當前的遠程主控人員分配給您的分支。

1

git會做什麼取決於您發出的確切的命令以及您的git配置。

首先了解pull是,它更新當前分支。如果您退房master,然後pull,您拉動的更改將併入master(但不是您的分支)。如果您簽出您的分行,然後pull,這些更改將併入您的分行(但不是master)。當然,這是分支點 - 對一個分支的更改不會自動影響另一個分支。如果你想影響兩者,你可以(見下面的更多)。另外,您可以告訴git將哪些更改合併到當前分支中,或者如果您未指定,那麼它將查找與當前分支對應的已配置默認值。 (有些人似乎認爲這種默認行爲是所有pull做,而且可以讓他們陷入麻煩。)所以,如果你想遠程master的變化融入到您的分支,你可以做

git checkout my_branch 
git pull origin master 

我通常不建議這種用法。它基本上是一個簡寫

git checkout my_branch 
git fetch 
git merge origin/master 

這是一個更明確一點(如此少依賴於配置細節等)。我使用pull相當多,但僅限於其配置/分支設置爲「典型」的回收站中的默認行爲。

現在,如果你想origin/master的變化反映在多個分支上,那麼你必須執行多次merge(和/或rebase)操作;而給定的pull只能做一個。所以通常你會首先得到改變到本地master

git checkout master 
git pull 

(或者,根據配置的,也許你需要git pull origin甚至git pull origin master)。然後,你將它們納入分支通過兩種

git checkout my_branch 
git merge master 

git rebase master my_branch 
+0

+1並刪除我的答案,因爲這一個更完整,坦率地說是一個更好的答案。我只會補充一點,它是可選的,可以通過本地主分支對更改進行往返。 'master'和'origin/master'都將解析爲本地主機的相同提交是最新的,因此使用'master'的任何命令都可以使用'origin/master'執行,您將得到相同的結果。我甚至養成了不保留本地副本的習慣,因爲這只是我必須記住保持最新的一件事。 – LightBender

相關問題