我做了一些垃圾提交,我不想再拥有了
假设我做了一些小改动并在每次改变后做出承诺。但我只想从最后一次提交到github。以下是我的历史记录:
Initial commit --> Second commit --> Third commit --> Fourth commit
只有我的第四次提交足以推送到github,所以如何删除提交1到3但保留4?
我试图谷歌解决我的问题,但我只能找到如何删除最新的提交或类似的东西。
答案 0 :(得分:4)
如果最新提交依赖于它们,则无法删除最旧的提交。如果不是:
git rebase -i HEAD~4
通过删除相应的行删除不需要的提交。
答案 1 :(得分:1)
使用git revert <commit>
其中<commit>
是git log中显示的提交的哈希值。基本上它会创建另一个提交,它将恢复在指定提交中完成的更改。
以下是步骤:
git log
并注意提交1-3
git revert <commit 1>
,git revert <commit 2>
和git revert <commit 3>
three commits
,这将还原提交1-3
的更改。git rebase -i HEAD~7
这会将你的7次提交压缩为1。commit 4
,将其提交邮件推送至pick
,并将其他人更改为squash
。有关详细信息,请参阅this