Git 删除通过将名称更改为另一个提交而创建的提交
当我试图更改刚创建的提交的名称时,我正在与GitKraken合作。我以为它只会更改名称,但它创建了另一个提交。我不知道我当时做了什么,但我有以下情况: 我想删除右边的两个提交:“Detector-Tf idf similarity”和“master:Auto上的WIP…”,这样我只有一个列,其他4个提交被堆叠在一起。Head是我希望出现在图表上的最后一次提交,“添加tf idf相似性” 是否可以从项目中完全删除这些提交 编辑:Git 删除通过将名称更改为另一个提交而创建的提交,git,git-commit,gitkraken,Git,Git Commit,Gitkraken,当我试图更改刚创建的提交的名称时,我正在与GitKraken合作。我以为它只会更改名称,但它创建了另一个提交。我不知道我当时做了什么,但我有以下情况: 我想删除右边的两个提交:“Detector-Tf idf similarity”和“master:Auto上的WIP…”,这样我只有一个列,其他4个提交被堆叠在一起。Head是我希望出现在图表上的最后一次提交,“添加tf idf相似性” 是否可以从项目中完全删除这些提交 编辑: 如果我使用GitKraken的“反向提交”选项,这会解决问题还是只
如果我使用GitKraken的“反向提交”选项,这会解决问题还是只会使问题变得更糟?通常,使用
git revert
撤消一个或多个提交是首选方法。这样做的主要原因是,一旦发布了一个分支,实际上删除一个较早的提交可能是破坏性的。相反,git revert
命令在分支上创建一个新的提交,该分支在功能上撤消一些早期的提交。它可能被认为是一些早期犯罪的镜像
在Gitkraken中,您可以通过右键单击提交节点,然后选择
revert commit
来恢复提交。有关更多信息,请参阅。您的问题是,在“旧”的基础上仍然有一个隐藏,即预重命名提交:主控上的行在制品:在…之前自动隐藏。
。仔细阅读有关隐藏的内容。如果移除隐藏,旧的提交将消失。当然,在删除隐藏之前,您应该检查隐藏的更改是否仍然相关。Git将在某些点自动隐藏未限制的更改,就像在还原之前一样
由于git提交是通过SHA散列标识的,因此更改旧提交的消息必须创建新的提交,因为散列是使用提交消息(以及其他因素)计算的
在这种情况下,不需要恢复。正如@TimBiegeleisen所说,当然,您不应该以任何方式更改发布的提交,但是像您在这里所做的那样重命名本地提交是很好的,根本不需要担心
注意,仅仅因为提交从GitKrakens提交图中“消失”,并不意味着它将被完全删除;只能从您当前的任何分支机构的
HEAD
s访问它。提交将持续一段时间,如果重置或重定出错,这通常是一个非常有用的功能。您愿意尝试使用命令行解决此问题吗?我真的不介意它删除提交,并反映在GitKraken graph@shadowtalker上