【发布时间】:2021-10-22 03:12:18
【问题描述】:
我在尝试压缩一些远程提交时遇到了一个奇怪的问题。我对一个 GitLab .yml 文件(准确地说是 22 个)进行了一系列小改动,我想将它们压缩到一个提交中。
到目前为止,我尝试做的是使用命令“git reset --soft HEAD~22”,然后将压缩的提交作为一个提交提交,然后强制推送以远程压缩提交(如this answer)。我知道如果在 GitLab 的合并请求中使用自动 squash,首先为此使用一个单独的分支会更明智,也不会那么痛苦,但我对 Git 比较陌生,当然已经吸取了教训。
正在发生的事情是this。当我尝试做所有 22 个时,它会压扁最后的 44 个,当我做 2 时,它会压扁最后的 24 个。我尝试了一些其他数字,它似乎是随机的(11 让我得到 33 个压扁的提交,4 给我 25 个,等等.)。这里发生了什么?我没有对我的远程仓库造成任何损坏,因为我没有推送任何东西并且我已经做了很多本地备份,但我完全感到困惑。
【问题讨论】:
-
我认为原因是因为您重置的 2 个提交之一是与“原始”远程同步对应的合并提交(即您执行了“git pull”)。这意味着通过您分支中的此提交,您将获得最新的“起源”。如果您重置,您将不再是最新的,因为您的远程分支的历史不再包含在您的本地分支中。