如何从过去的git commit中删除目标文件到github.com?

时间:2010-07-31 17:22:47

标签: git commit

我半知道这个问题可能已经被问到了,但我不熟悉这个术语,我需要一个非常容易理解的答案,或许对我的特殊需求有点过于具体。

我忘记删除目标文件,然后执行了git add -A。然后我扫描了几个man页并使用了某种交互模式,并在一些尝试后删除了目标文件。

然后我执行了git push origin master将文件“上传”到github.com上的远程服务器。它变成了三个提交。

所以我的最后四个提交包括:

  • 0)过去的提交很好,花花公子。
  • 1)使用目标文件和代码更改提交
  • 2)删除目标文件的提交。
  • 3)提交时添加了.gitignore文件(有人在一个月前发送给我)。

基本上我希望在0之后有一个提交,其中的diff应显示所有更改,除了那些该死的目标文件的任何证据。如果有可能,我该如何做?

1 个答案:

答案 0 :(得分:2)

在本地,使用git rebase --interactive或您选择的git工具来获取您喜欢的历史记录。然后使用git push origin master -f强制您的master版本进入github存储库。

请注意,修改已发布的历史记录意味着您必须找到已经撤消修订后的更改并指示他们获取新更改的所有人,并且如果他们已经在他们之上完成了工作,那么就要重新安排旧更改