首先,让我解释一下我的情况:
我在新创建的仓库中有一个名为 script
的文件。
然后我进行了以下操作:
git add script
git commit -m 'initial commit'
git push -u origin master
但后来我意识到我需要去掉注释的 script
文件版本,所以我做了以下操作:
-- 使用sed
删除了 script
中的注释
git rm script
git add script-no-comments
Git 识别文件被重命名,这是可以的。
然后:
git commit -am 'comments removed'
git push origin master
现在我本地和远程都有两个提交,第一个是带有注释的文件,另一个则没有。
我的问题是:我如何在本地删除第一个提交,保留最新的无注释版本,然后强制推送到远程,从而覆盖那里的提交。 我不担心提交的 sha 更改,因为只有我才会 pull?
此外,这样做是否会永久删除那个带注释的版本,因为我不想让它被恢复?
git merge --squash ...
命令后,我收到了“nothing to squash, already up-to-date”的消息。 - branquitoHEAD@{1}
而不是{0}
。 - user229044script
的第一个版本,以至于如果有人试图这样做,它将无法通过任何方式恢复。 - branquito