在创建一个我也需要在其上查看最新更改的新分支后,从 master 拉取到我的本地存储库是否安全?
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,然后创建一个新分支。我现在已经创建了一个新分支(在本地代码中没有 add/change 任何内容)但是在此之前跳过了 git 对 master 的拉取。如果我执行 git pull,最新的远程修改是否会反映在我的新本地分支和本地 master 上,还是我应该删除它并在 git pull 之后重新创建它?
谢谢!
Git 将尝试将远程 master 合并到您的本地新分支。由于您没有任何更改,因此您只需将当前的远程主机获取到您的分支即可。
git 将执行的操作取决于您发出的 确切 命令,以及您的 git 配置。
关于pull
首先要了解的是,它更新当前分支。如果您签出 master
,然后签出 pull
,您提取的更改将合并到 master
(但不是您的分支)。如果您签出您的分支然后 pull
,更改将合并到您的分支中(但不是 master
)。当然,这就是分支的意义所在——对一个分支的更改不会自动影响另一个分支。如果你想影响两者,你可以(见下文了解更多)。
此外,您可以告诉 git 将哪些更改合并到当前分支中,或者如果您未指定,那么它将查找与当前分支对应的已配置默认值。 (有些人似乎认为这种默认行为是 pull
所做的一切,这会给他们带来麻烦。)所以如果你想将远程 master
的更改集成到你的分支中,你可以这样做
git checkout my_branch
git pull origin master
我通常不推荐这种用法。它基本上是 shorthand for
git checkout my_branch
git fetch
git merge origin/master
更明确一点(因此较少依赖配置细节等)。我经常使用 pull
,但仅用于其在 configuration/branch 设置为 "typical".
的回购协议中的默认行为
现在,如果你想让origin/master
的变化反映在多个分支上,那么你必须执行多次合并(and/or 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
我想从我本地的远程仓库获取最新更新。我通常在 master 分支上执行 git pull,然后创建一个新分支。我现在已经创建了一个新分支(在本地代码中没有 add/change 任何内容)但是在此之前跳过了 git 对 master 的拉取。如果我执行 git pull,最新的远程修改是否会反映在我的新本地分支和本地 master 上,还是我应该删除它并在 git pull 之后重新创建它? 谢谢!
Git 将尝试将远程 master 合并到您的本地新分支。由于您没有任何更改,因此您只需将当前的远程主机获取到您的分支即可。
git 将执行的操作取决于您发出的 确切 命令,以及您的 git 配置。
关于pull
首先要了解的是,它更新当前分支。如果您签出 master
,然后签出 pull
,您提取的更改将合并到 master
(但不是您的分支)。如果您签出您的分支然后 pull
,更改将合并到您的分支中(但不是 master
)。当然,这就是分支的意义所在——对一个分支的更改不会自动影响另一个分支。如果你想影响两者,你可以(见下文了解更多)。
此外,您可以告诉 git 将哪些更改合并到当前分支中,或者如果您未指定,那么它将查找与当前分支对应的已配置默认值。 (有些人似乎认为这种默认行为是 pull
所做的一切,这会给他们带来麻烦。)所以如果你想将远程 master
的更改集成到你的分支中,你可以这样做
git checkout my_branch
git pull origin master
我通常不推荐这种用法。它基本上是 shorthand for
git checkout my_branch
git fetch
git merge origin/master
更明确一点(因此较少依赖配置细节等)。我经常使用 pull
,但仅用于其在 configuration/branch 设置为 "typical".
现在,如果你想让origin/master
的变化反映在多个分支上,那么你必须执行多次合并(and/or 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