如何用master覆盖某个分支

Jac*_*ack 9 git tortoisegit

我有两个分支devmaster.我希望我的dev分支被master分支完全覆盖,因为我知道master是最新的.我怎么能用TortoiseGit UI做到这一点?

我尝试使用TortoiseGit进行合并,但这会导致许多冲突.

请告诉我Tortoise GIT中的答案,因为我只使用UI并且不熟悉实际的GIT命令.

Rom*_*eri 7

免责声明:这不是 TortoiseGit 解决方案,而是 CLI 解决方案,我希望它无论如何都能帮助某人。

由于没有人已经建议它,让我们也注意这个非常简单的方法:

git branch -f dev master
Run Code Online (Sandbox Code Playgroud)

这是将第一个给定的 ref(此处为:dev)设置为第二个 ref(此处为:master)当前指向的同一点的简便方法。(作为旁注,在此命令之后,它们不会以任何方式“链接”,并且出于所有意图和目的保持独立。)

因为它重写了分支 dev 的历史,如果它有一个远程对应物,你必须用 force 推送它:

git checkout dev
git push -f origin HEAD
Run Code Online (Sandbox Code Playgroud)

无论如何,如果您碰巧在该分支上有其他人与您一起工作,这里的任何解决方案都是重写历史的方法,因此请务必事先与他们讨论!


MrT*_*Tux 2

在 TortoiseGit 中,根据您的情况,您有多种选择:

  1. 您位于dev分支上:转到日志对话框,打开主分支条目上的上下文菜单,然后选择“重置为”并选择“硬”。

  2. 您不在dev分支上:创建一个新分支,名称dev选择该master分支作为源,然后选择“如果存在则覆盖分支”(或者转到日志对话框,打开 dev 分支上的上下文菜单,然后选择删除分支并打开分支上的上下文菜单master并创建一个名为 ) 的新分支dev