修改提交会生成新提交。如果您已将(先前版本的)提交推送到远程存储库,则无法在没有-f
的情况下推送新提交,因为这会改变远程存在的现有历史记录。 git做出的一个关键承诺是,如果不生成新的提交ID,则无法修改给定的提交 - 以及导致该提交的历史记录。
您的选择是:
- 只需使用
git push -f
并让人们知道,或
- 在现有提交之后创建一个新提交并推送它。
某些工作流程(例如,涉及Gerrit或GitHub拉取请求的工作流程)依赖于强制推送作为常规操作(例如,用于更新现有的拉取请求)。采用这样的工作流程可以为您提供更多机会来解决问题"事后"。