23

它是这样的:

  • 我有我修改的文件 A 和 B

  • 我只是假设提交并推送 A,但不小心同时提交并推送了 A 和 B

  • 我做了一个“git push old-id:master”,所以在 github 上它显示“Master is now old-id”,其中 old-id 是我之前的最后一次提交,所以我认为它回到了我提交之前。

问题:

  • 在我的本地,我如何撤消具有 A 和 B 的提交,只提交 A,只推送 A?

注意:我确实需要将 A 和 B 的更改保留在我的本地。最终结果应该是:

  • 本地 - 新 A 和新 B
  • Github - 新A和旧B
4

1 回答 1

40
$ git reset <old-id>    # Undo the commit after old-id
$ git add A             # stage A for a new commit
$ git commit            # make the new commit
$ git push              # push it
于 2012-04-17T03:31:08.523 回答