在创建一个我需要查看最新更改的新分支后,从master到我的本地仓库进行git pull是否安全?

问题描述 投票:0回答:2

我想从我当地的远程仓库获得最新的更新。我通常在主分支上执行git pull,然后创建一个新分支。我现在已经创建了一个新分支(没有添加/更改本地代码中的任何内容)但在此之前跳过了master上的git pull。如果我执行git pull,最新的远程修改是否会反映在我的新本地分支和本地主服务器上,还是应该删除它并在git pull之后重新创建它?谢谢!

git git-branch git-pull master
2个回答
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相当多,但仅限于其配置/分支设置为“典型”的repos中的默认行为。

现在,如果您希望origin/master更改反映在多个分支中,那么您必须执行多个合并(和/或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
投票

Git将尝试将远程主服务器合并到您的lokal新分支。由于您没有任何更改,您只需将当前的远程主服务器提供给您的分支机构。

© www.soinside.com 2019 - 2024. All rights reserved.