Git 从某个分支更新 master

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

当我在 B1 分支时,我可以在 B1 中远程更新 master 吗?
IE。不做

git checkout master
git pull
git checkout B1

但是更短的东西?

git git-branch
3个回答
2
投票

可以通过以下方式在不离开本地分支机构的情况下更新本地 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
,将拉取远程主机并更新本地主机。


0
投票

你跑:

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
,即使更改对于合并来说是微不足道的。


0
投票

根据我的经验,命令

git pull origin master:master
不适用于 git 版本
2.37.2
,或者我应该说,它可以,但是太多了。

事实上,最后一个命令

(git pull origin master:master)
做了三件不同的事情:

  1. 它更新分支
    master
    :我的意思是它做的工作和你在分支
    master
    上做的一样
    git pull
    。换句话说,它相当于
    git checkout master && git pull
  2. 然后,我将分支
    master
    合并到您当前的分支
    B1
    (您在问题中给出的名称)中。
  3. 最后,根据您的合并策略(
    rebase=true
    rebase=false
    fast-forward
    --ff-only
    ),它将在您当前的分支上创建一个新的提交
    (B1)
    。请注意这一点:它将在您的当前分支(B1)上创建一个新的提交,这与分支
    master
  4. 不同

所以我建议改用另一个命令:

git fetch --force --update-head-ok --verbose origin master:master

运行

git fetch --help
以获取有关选项
--update-head-ok
--force
的更多信息。

希望对您有所帮助:)

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