Git更新主程序从某个分支

yhived7q  于 2023-04-28  发布在  Git
关注(0)|答案(3)|浏览(145)

当我在分支B1时,我可以从远程更新主服务器而留在B1吗?
即不做

git checkout master
git pull
git checkout B1

但短一点的?

tkqqtvp1

tkqqtvp11#

您可以通过以下方式在不离开本地分支的情况下更新本地master:

git pull origin master:master

此命令的作用是拉取远程主服务器并更新本地主服务器。
通常git pull origin会拉取origin中的所有分支。可以通过git pull origin <remote-branch>拉取一个分支。实际上,最后一个参数是refspec

  • refspec* 遵循格式 src:dst。在git-pull的情况下,src 表示远程分支,dst 表示本地分支。git pull origin master,只会拉取远程主机,但不会更新本地主机。git pull origin master:master,将拉取远程主机并更新本地主机。
afdcj2ne

afdcj2ne2#

你跑:

git fetch --all

git remote update

在此之后,远程master将在远程跟踪分支origin/master中,您将能够看到其进度,就像本地分支master一样。您可以选择一个时间来合并/rebase本地master
说明:最有可能的是,您有一对远程跟踪分支origin/master和本地分支mastermaster在某个时刻从origin/master开始,并包含局部变化。git pull(1)更新origin/master和(2)合并或重新建立本地修改与origin/master进度。(1)可以通过我推荐的git fetch来完成,(2)在当前的实现中,无论如何都需要检出master,即使合并的更改微不足道。

7xzttuei

7xzttuei3#

根据我的经验,git pull origin master:master命令不能在2.37.2版本的git上运行,或者我应该说,它可以,但是,太多了。
实际上,最后一个命令(git pull origin master:master)做了三件不同的事情:
1.它更新分支master:我的意思是,它做的工作就像你在分支master上做git pull一样。换句话说,它相当于git checkout master && git pull
1.然后,我将分支master合并到您当前的分支B1(您在问题中给出的名称)。
1.最后,根据您的合并策略(rebase=truerebase=falsefast-forward--ff-only),它会在当前分支(B1)上创建一个新的提交。注意到这一点:它会在你的***当前分支(B1)***上创建一个新的提交,它与分支master不同
因此,我建议使用另一个命令:
git fetch --force --update-head-ok --verbose origin master:master
运行git fetch --help以获取有关选项--update-head-ok--force的更多信息。
希望有帮助:)

相关问题