我的情况如下,我有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 )遇到了这个问题,我想知道是否有某个命令可以帮我完成所有这些工作,而无需在分支机构之间进行检出。 是否存在这样的功能?
答案 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
后,可以使用topic
或git push --force
发送重新提交的提交并在Git上更新git push --force-with-lease
在原点。如果其他人在那里使用topic
,也许是通过第三个Git的topic
,您可能会与他们混为一谈,就像他们在上面与您相处一样。
因此,如果您已经推过origin/topic
,请确保每个人 else 都同意您可以重新建立自己的origin/topic
,到topic
(最好是git push --force
)。
(一种常见的工作流程是使用GitHub之类的第三方服务器来存储副本,以防私有Git存储库在崩溃或丢失数据的计算机上。在这种情况下,您可能希望推进正在进行的工作:每个人都在这里得到他们自己的分支名,而没有人使用其他人的分支,这个“获得更新共享分支的权限”的问题就消失了,因为这些分支没有共享,即使每个人都可以看到每个人其他的。)