如果 git 日志不允许我删除提交,我该如何删除?
How can I drop commits in the git log if it isn't letting me?
我正在尝试删除并删除图片中突出显示的提交。但是,当我进行交互式变基并删除提交时,它只会使链更加复杂。如果没有我突出显示的那些,我怎么能有一行提交?顺便说一句,有些提交可能有相同的消息,但它们的源代码完全不同。请建议 gitkraken 和 CLI git 解决方案。
这是我正在寻找的图表
编辑
这是更新后的图
须知:origin/master
(图表中的第二位主人)不是您的。它是 远程跟踪分支 ,其唯一的工作是反映 GitHub 上的内容。它实际上是您获取/拉取和推送的媒介。您根本无法直接编辑远程跟踪分支 origin/master
。不过,真正的 master
是你的。
所以你需要做的第一件事就是将这些提交放到一个真正的分支上,我们也可以使用 master
本身作为真正的分支:
在 master
,创建一个新分支来保留你的位置;我们称它为 temp
.
现在,仍然在 master
,执行 reset --hard
到“删除的控制台日志记录”(图中较高的那个)。我们故意跳过不需要的合并提交,因此稍后将与其他“删除的控制台日志记录”一起根除。
好的,现在您要重新洗牌的所有早期提交都在 master
上,我们可以进行重新洗牌:
从“广播输入”开始重新设置交互基础,并删除“用户输入”。
现在git cherry-pick temp
,然后强制删除temp
分支;你不再需要它了。
现在 master
看起来像你想要的样子!
所以现在您可以推送,从而使远程跟踪origin/master
与它协调;但你将不得不使用武力,因为你已经改写了历史。如果您与其他人共享此分支,这会产生严重的(可能是灾难性的)后果,但这些后果隐含在所提出的问题中,我们对此无能为力。
这个故事的真正寓意是,不要推动主分支,直到你的历史真的是你想要的那样.如果你不知道你的历史是否已经定下来,就用更多的分支去试验,直到你知道为止。必须重写您已经推送到 GitHub 的内容是一种非常难闻的气味,表明您的工作习惯不正确。
我正在尝试删除并删除图片中突出显示的提交。但是,当我进行交互式变基并删除提交时,它只会使链更加复杂。如果没有我突出显示的那些,我怎么能有一行提交?顺便说一句,有些提交可能有相同的消息,但它们的源代码完全不同。请建议 gitkraken 和 CLI git 解决方案。
这是我正在寻找的图表
须知:origin/master
(图表中的第二位主人)不是您的。它是 远程跟踪分支 ,其唯一的工作是反映 GitHub 上的内容。它实际上是您获取/拉取和推送的媒介。您根本无法直接编辑远程跟踪分支 origin/master
。不过,真正的 master
是你的。
所以你需要做的第一件事就是将这些提交放到一个真正的分支上,我们也可以使用 master
本身作为真正的分支:
在
master
,创建一个新分支来保留你的位置;我们称它为temp
.现在,仍然在
master
,执行reset --hard
到“删除的控制台日志记录”(图中较高的那个)。我们故意跳过不需要的合并提交,因此稍后将与其他“删除的控制台日志记录”一起根除。
好的,现在您要重新洗牌的所有早期提交都在 master
上,我们可以进行重新洗牌:
从“广播输入”开始重新设置交互基础,并删除“用户输入”。
现在
git cherry-pick temp
,然后强制删除temp
分支;你不再需要它了。
现在 master
看起来像你想要的样子!
所以现在您可以推送,从而使远程跟踪origin/master
与它协调;但你将不得不使用武力,因为你已经改写了历史。如果您与其他人共享此分支,这会产生严重的(可能是灾难性的)后果,但这些后果隐含在所提出的问题中,我们对此无能为力。
这个故事的真正寓意是,不要推动主分支,直到你的历史真的是你想要的那样.如果你不知道你的历史是否已经定下来,就用更多的分支去试验,直到你知道为止。必须重写您已经推送到 GitHub 的内容是一种非常难闻的气味,表明您的工作习惯不正确。