有做這件事的多種方式,但他們都不recommnded雖然 所以,在您自擔風險使用它們。
推提交
使用衍合
如果你有2的一個承諾&希望只是其中一個推,這是不是最新的。
- GIT中復位-hard <第二提交ID>
- GIT中推
- GIT中復位-hard <第一提交ID>
與對應於第二這個唯一變化提交ID將被推&你的最新提交將不會被推送。
但是,如果最新的承諾,必須推不出二日提交,你必須先扭轉提交
- git的日誌 - 注意53259b225之前提交ID。讓我們說它是XXXXXXXX
- git的變基-i XXXXXXXX
在打開的編輯器,你應該看到兩行代表53259b225 & 227552392像
您提交挑227552392等等等等 挑53259b225等等等等
重新排序這兩條線看起來像
挑53259b225等等等等 挑227552392等等等等
然後保存該文件。
有了這個,你基本上改變了提交的順序。如果你在兩個提交中處理了不同的文件集,那麼這將是一個相對簡單的過程。如果沒有,那麼你可能有一些合併做。
如果,如果你認爲你有搞砸任何時間點,那麼也可以把命令
- git的變基--abort帶你回到你的數據流是什麼樣子,你開始之前的互動變基。
使用壁球
- 做「git的日誌」,並注意你的頭提交(第一次提交的清單),並注意「基地提交」所做的更改(提交之前(時間)你正在替換的第一個提交)。確保沒有文件添加索引。
- 執行「git reset --hard」(使用此命令時要小心;確保上述步驟)。
- 做「git merge --squash」 - 這將撤銷提交併且所有提交的文件將被暫存。
- 執行「git status」等並驗證預期的更改是否在您的索引(和工作樹)中。
- ,如果你不想推的任何文件,做git的復位頭或 如果你想修改這些文件,使這些變化和階段他們
- 做「git的承諾-M‘’」 。
正如你所看到的,這也可以用來合併幾個提交到一個。
看看這個答案:http://stackoverflow.com/questions/1338728/how-to-delete-a-git-commit – timbooo