从远程拉出后重新建立本地分支

时间:2020-05-11 15:49:35

标签: git branch rebase pull

我的情况如下,我有2个本地分支-一个跟随另一个,而另一个跟随远程分支: A(origin/master)---B---C(topic)---D---E---F(master)

topic 分支紧随 origin / master 分支。 Master 分支紧随 topic 分支。

一段时间后,起源/母版增长,我们得到以下信息:

A---G(origin/master)
 \
  \
    B---C(topic)---D---E---F(master)

所以今天,为了进行基础调整,我正在做以下事情:

(topic): git pull --rebase
(topic): git checkout master
(master): git pull --rebase
(master): git checkout topic
(topic):

我在几个本地分支机构(几个 topics )遇到了这个问题,我想知道是否有某个命令可以帮我完成所有这些工作,而无需在分支机构之间进行检出。 是否存在这样的功能?

1 个答案:

答案 0 :(得分:0)

使用:

git fetch

首先,在获取所有新提交后更新所有origin/*名称。然后使用:

git rebase origin/master

将您自己的个人未发布的topic分支重新建立到更新后的origin/master

((如果您对自己的master感到恼火,可以考虑简单地删除您的master分支。您可以使用名称origin/master来查找他们的最新的master,现在您没有自己的master,您将不会有更新的欲望。)< / p>

重要提示

如果您已经在topic上创建了origin,因此origin/topic存在,则不会更新您自己的{{1} }-好吧,除非某人 else origin/topic的Git上进行了某些操作。然后,它会 更新您的origin,然后您最好找出其他人做了什么。

在自己origin/topic上运行git rebase origin/master后,可以使用topicgit push --force发送重新提交的提交并在Git上更新git push --force-with-lease在原点。如果其他人在那里使用topic,也许是通过第三个Git的topic,您可能会与他们混为一谈,就像他们在上面与您相处一样。

因此,如果您已经推过origin/topic,请确保每个人 else 都同意您可以重新建立自己的origin/topic,到topic(最好是git push --force)。

(一种常见的工作流程是使用GitHub之类的第三方服务器来存储副本,以防私有Git存储库在崩溃或丢失数据的计算机上。在这种情况下,您可能希望推进正在进行的工作:每个人都在这里得到他们自己的分支名,而没有人使用其他人的分支,这个“获得更新共享分支的权限”的问题就消失了,因为这些分支没有共享,即使每个人都可以看到每个人其他的。)