2013-09-21 27 views
2

我做了一些垃圾承諾,我不希望再有的Git(集線器)刪除舊犯

比方說,我做了一些細微的變化,並在每次更改後提交。但我只想從最後一次提交到github。這裏是我的歷史的樣子:

Initial commit --> Second commit --> Third commit --> Fourth commit 

只有我的第四個承諾是不夠好,推到github上,所以我怎麼能刪除提交1〜3,但保持4?

我試圖谷歌我的問題,但我只能找出如何刪除最新的提交或類似的東西。

回答

4

你不能刪除最早的承諾,如果最新的承諾取決於他們。如果不是:

git rebase -i HEAD~4 

並通過刪除相應的行來刪除不需要的提交。

1

使用git revert <commit>其中<commit>是在git log中顯示的提交的哈希。基本上它會創建另一個提交,它將恢復指定提交中完成的更改。 步驟如下:

  1. git log和注意的承諾1-3
  2. git revert <commit 1>git revert <commit 2>git revert <commit 3>
  3. 現在你將有更多的three commits哈希值將恢復提交1-3的變化。
  4. git rebase -i HEAD~7這將壁球你的7個提交1
  5. 出現提示時,編輯commit 4你要推的pick和改變他人squash其提交信息。

欲瞭解更多信息請參閱this