【发布时间】:2021-11-04 15:28:07
【问题描述】:
【问题讨论】:
-
为什么?您要解决的实际问题是什么?通常,尝试在任何类型的变更跟踪系统中更改历史记录都与该系统的观点背道而驰。
-
@David 首先,feaure 分支从开发中创建,并且只有 2 次提交。我尝试从开发创建实验分支,我只提交添加文本文件,然后我想将特性分支从开发重新定位到这个实验分支,但是出了点问题我犯了一些错误,特性分支被合并到实验分支中。之后我尝试删除实验分支,所以现在结果就像图片中一样。所以commit1是被删除的实验分支的提交。
-
注意:你用红色 X 标记的提交 not 是
feature上的 first 提交。这是feature上的倒数第三次提交。feature上的 first 提交是develop上的第一个提交。这很重要,原因有很多;最重要的是你不能真正删除 any 提交,而你要做的是 copy last two 在@上的提交987654327@ 用于不使用倒数第三个提交的新提交和改进提交。你必须像这样“向后工作”,因为 Git 是向后工作的。 -
当您执行这种“复制到新的和改进的”技巧时,最后一步是移动 分支名称,以便它引用上次复制的提交。这不会移动任何 other 分支名称,因此其他名称上的所有提交仍然在其他名称上,可能包括复制到新的和改进的提交。
-
幸运的是,对于您的特殊情况,您不想再看到的提交只能从
feature访问,因此它仍然可以从所有之前到达它的非功能名称......变得无关紧要:没有这样的名称。但如果不是这种情况(总有一天你会遇到的),那就很重要了。