在创建了一个新分支后,从master到我的本地repo进行git拉取安全吗?我还需要在该分支上查看最新的更改?

在创建了一个新分支后,从master到我的本地repo进行git拉取安全吗?我还需要在该分支上查看最新的更改?,git,git-branch,git-pull,master,Git,Git Branch,Git Pull,Master,我想在我的本地回购上获得远程回购的最新更新。我通常在主分支上执行git pull,然后创建一个新分支。我现在创建了一个新的分支(没有在本地代码中添加/更改任何内容),但在此之前跳过了git pull on master。如果我进行git拉取,最新的远程修改是否会反映在我的新本地分支和本地主机上,或者我应该删除它并在git拉取后重新创建它? 谢谢 Git将尝试将远程主机合并到您的lokal新分支。由于您没有任何更改,所以只需将当前远程主机添加到您的分支。git将执行的操作取决于您发出的确切命令,也

我想在我的本地回购上获得远程回购的最新更新。我通常在主分支上执行git pull,然后创建一个新分支。我现在创建了一个新的分支(没有在本地代码中添加/更改任何内容),但在此之前跳过了git pull on master。如果我进行git拉取,最新的远程修改是否会反映在我的新本地分支和本地主机上,或者我应该删除它并在git拉取后重新创建它?
谢谢

Git将尝试将远程主机合并到您的lokal新分支。由于您没有任何更改,所以只需将当前远程主机添加到您的分支。

git将执行的操作取决于您发出的确切命令,也取决于您的git配置

关于
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
,但仅用于其配置/分支设置为“典型”的回购中的默认行为

现在,如果您想在多个分支中反映
原始/主
更改,那么您必须执行多个合并(和/或重基)操作;一个给定的
只做一个。因此,通常情况下,您会首先将更改输入到本地
master

git checkout master
git pull
(或者,根据配置,可能需要
git pull origin
甚至
git pull origin master
)。然后你可以通过以下方式将它们合并到分支中:

git checkout my_branch
git merge master


+1删除我的答案,因为这是一个更完整的答案,坦率地说是一个更好的答案。我要补充的唯一一点是,通过本地主分支往返更改是可选的。
master
origin/master
都将解析为本地master的同一提交是最新的,因此使用
master
的任何命令都可以使用
origin/master
执行,您将得到相同的结果。我甚至养成了一个习惯,根本不保存本地版本的master,因为这只是我必须记住的另一件事,以保持最新。
git rebase master my_branch