修改推送提交 - 如何在没有强制的情况下恢复同步?

时间:2014-06-04 15:14:32

标签: git push amend

我修改了推送提交。现在不能推送到git repo。

我不想使用-f键,因为它会给其他人带来很多问题。

目前我只看到一个解决方案:

  1. git clone
  2. 从备份副本中写入已更改的文件
  3. 进行新的提交
  4. 推它
  5. 你知道更好的方法吗?

1 个答案:

答案 0 :(得分:0)

修改提交会生成新提交。如果您已将(先前版本的)提交推送到远程存储库,则无法在没有-f的情况下推送新提交,因为这会改变远程存在的现有历史记录。 git做出的一个关键承诺是,如果不生成新的提交ID,则无法修改给定的提交 - 以及导致该提交的历史记录。

您的选择是:

  • 只需使用git push -f并让人们知道,或
  • 在现有提交之后创建一个新提交并推送它。

某些工作流程(例如,涉及GerritGitHub拉取请求的工作流程)依赖于强制推送作为常规操作(例如,用于更新现有的拉取请求)。采用这样的工作流程可以为您提供更多机会来解决问题"事后"。