'git reset --soft HEAD' 的奇怪结果

Strange result of 'git reset --soft HEAD'

我在尝试压缩一些远程提交时遇到了一个奇怪的问题。我对 GitLab .yml 文件(准确地说是 22 个)做了一系列小改动,我想将其压缩到一次提交中。

到目前为止我尝试做的是使用命令 'git reset --soft HEAD~22',然后将压缩的提交作为一次提交提交,然后强制推送以远程压缩提交(如 [=11 中所做的那样) =]).我知道在 GitLab 的合并请求中使用自动压缩首先为此使用一个单独的分支会更明智并且更不痛苦,但我对 Git 比较陌生并且肯定学到了我的课。

正在发生的事情是 this。当我尝试全部 22 次时,它压缩了最后 44 次,当我执行 2 次时,它压缩了最后 24 次。我尝试了一些其他数字,它似乎是随机的(11 使我获得 33 次压缩提交,4 给我 25 次,等等.).这里发生了什么?我没有对我的远程仓库造成任何损害,因为我没有推送任何东西并且我做了很多本地备份,但我完全困惑。

感谢 Philippe 的评论,我明白了。其中一个提交是由 23 个单独的提交(.yml 更改)组成的合并。在这个合并提交之后有一个提交,所以做 'git reset --soft HEAD~1' 只会压缩最近的一个提交,但是做 'git reset --soft HEAD~2' 会抓住分支上的最近提交,加上包含合并提交的 23 个提交.

因此,总而言之,请在您使用的任何 Git 平台(或使用某种可视化工具)上检查您的提交图表。它将有助于以更易于阅读的方式展示提交历史记录,并且有助于解释您所看到的任何奇怪行为。