如何从存储库中删除git中的先前提交?

时间:2017-03-07 05:31:35

标签: git

git保留了回购中的先前提交。我想知道如何从我的回购历史中进一步删除特定的提交(我有它的ID)?

1 个答案:

答案 0 :(得分:0)

正如https://stackoverflow.com/a/42522493/1507546所述,您可以使用git rebase

 # 06c8c77^ means the commit just before 06c8c77
 git rebase -i 06c8c77^

 # Your default editor configured for git will be opened with line similar to the following

在第一部分中,您将看到许多提交,您要删除的提交位于底部,您可以比较提交哈希。

pick 91c0bd0 track one
....
pick 06c8c77 bla bla bla # the one to remove

要删除它,并在第二部分中解释,您需要做的就是从编辑器中删除该行。

# ....
#
# If you remove a line here THAT COMMIT WILL BE LOST.

之后你应该保存并退出你的编辑器。如果没有错误,则需要更新远程分支。例如,如果您的分支机构名称为feature/my_branch,则需要执行以下操作:

git push -f origin feature/my_branch # -f or --force to replace the remote feature/my_branch with the local one

N.B。只要分支仅在使用rebase时由单个开发人员使用,这是安全的。