1

我修改了一个推送的提交。现在无法推送到 git repo。

我不想用-f钥匙按,因为这会给其他人带来很多问题。

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

  1. git 克隆
  2. 从备份副本中写入更改的文件
  3. 做出新的承诺
  4. 推它

你知道更好的方法吗?

4

1 回答 1

0

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

您的选择是:

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

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

于 2014-06-04T16:39:45.247 回答