当我在 B1 分支时,我可以在 B1 中远程更新 master 吗?
IE。不做
git checkout master
git pull
git checkout B1
但是更短的东西?
可以通过以下方式在不离开本地分支机构的情况下更新本地 master:
git pull origin master:master
这条命令的作用是拉取远程master并更新本地master。
一般
git pull origin
拉origin
中的所有分支。 git pull origin <remote-branch>
可以拉出一个分支。实际上最后一个参数是 refspec.
A refspec 遵循格式 src:dst。在
git-pull
的情况下,src 指的是远程分支,dst 指的是本地分支。 git pull origin master
,只会拉远程主机,但不会更新本地主机。 git pull origin master:master
,将拉取远程主机并更新本地主机。
你跑:
git fetch --all
或
git remote update
之后,远程
master
将在远程跟踪分支origin/master
,您将能够像本地分支master
一样看到它的进度。您可以选择一个时间来合并/变基本地 master
稍后。
解释:很可能你有一对远程跟踪分支
origin/master
和本地分支master
。 master
在某个时刻从 origin/master
开始,包含局部变化。 git pull
(1) 更新 origin/master
和 (2) 将本地修改与 origin/master
进度合并或变基。 (1) 可以通过我推荐的 git fetch
完成,并且 (2) 在当前实施中无论如何都需要检查 master
,即使更改对于合并来说是微不足道的。
根据我的经验,命令
git pull origin master:master
不适用于 git 版本 2.37.2
,或者我应该说,它可以,但是太多了。
事实上,最后一个命令
(git pull origin master:master)
做了三件不同的事情:
master
:我的意思是它做的工作和你在分支master
上做的一样git pull
。换句话说,它相当于git checkout master && git pull
master
合并到您当前的分支B1
(您在问题中给出的名称)中。rebase=true
、rebase=false
、fast-forward
、--ff-only
),它将在您当前的分支上创建一个新的提交(B1)
。请注意这一点:它将在您的当前分支(B1)上创建一个新的提交,这与分支master
所以我建议改用另一个命令:
git fetch --force --update-head-ok --verbose origin master:master
运行
git fetch --help
以获取有关选项--update-head-ok
和--force
的更多信息。
希望对您有所帮助:)