如何用master覆盖某个分支

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

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

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

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

git tortoisegit
3个回答
1
投票

在TortoiseGit中,根据您的场景,您有多种选择:

  1. 您在dev分支上:转到日志对话框,打开主分支条目上的上下文菜单,然后选择“重置为”并选择“硬”。
  2. 您不在dev分支上:创建一个名为dev的新分支,选择master分支作为原点并选择“覆盖分支(如果存在)”(或转到日志对话框,打开dev分支上下文菜单并选择删除分支并打开master分支上下文菜单并创建一个名为dev的新分支。

0
投票

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

由于没有人提出过,我们还要注意这个非常简单的方法:

git branch -f dev master

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

当它重写分支开发的历史时,如果它有一个远程对应物,你将不得不用力推动它:

git checkout dev
git push -f origin HEAD

在任何情况下,如果您碰巧有其他人在该分支上与您合作,这里的任何解决方案都是重写历史的方法,所以请务必事先与他们讨论!


-1
投票

我不知道这是对还是错,但我似乎已经用这样的主人覆盖了另一个分支:

git push origin master:otherbranch

然后,当我切换时,我不得不拉,这是好的去?

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