2017-09-06 86 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

相关问题