[英]Is it safe to do a git pull from master to my local repo after creating a new branch on which I need to see the latest changes too?
我想從本地本地的遠程倉庫獲取最新的更新。 我通常在master分支上時進行git pull,然后創建一個新分支。 我現在創建了一個新分支(未在本地代碼中添加/更改任何內容),但是在此之前跳過了master上的git pull。 如果我進行git pull,最新的遠程修改會反映在新的本地分支和本地master上,還是應該刪除它並在git pull之后重新創建它? 謝謝!
git的作用取決於您發出的確切命令以及git的配置。
了解pull
的第一件事是,它會更新當前分支。 如果先簽出master
,然后再pull
,那么您所做的更改將並入master
(但不包含在您的分支中)。 如果您簽出分支,然后pull
,則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
更改反映在多個分支中,則必須執行多個合並(和/或變基)操作; 一個給定的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
Git將嘗試將遠程主服務器合並到您的新分支。 由於您沒有任何更改,因此只需將當前的遠程主服務器添加到您的分支即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.