可以說我已經提交了1,2,3,4,5。提交2和5是我的,其餘的是由別人完成的。因爲3,4提交有一些錯誤! 我推送了提交。 承諾5是我想申請在提交2.Git刪除具體提交
我要回滾提交2和應用更改我的新變化commmit 5.
我應該如何刪除特定承諾3和4孤獨?
可以說我已經提交了1,2,3,4,5。提交2和5是我的,其餘的是由別人完成的。因爲3,4提交有一些錯誤! 我推送了提交。 承諾5是我想申請在提交2.Git刪除具體提交
我要回滾提交2和應用更改我的新變化commmit 5.
我應該如何刪除特定承諾3和4孤獨?
做一個變基:
git rebase -i HEAD~5
這將打開一個編輯器窗口;只需刪除對應於提交3和4的pick
行。退出編輯器:rebase將繼續。
注意:危險和衝突的來源;如果底墊由於某種原因失敗,或者修復它(手;看到git rebase
手冊頁)或git rebase --abort
終止它)
當底墊被完成後,按與-f
選項。但與你在這個回購工作的人不會感謝你!
這裏是另一種方法,只是爲了變化。
您應做的是對的5個頂級的承諾3和4
將恢復代碼如果您還沒有推開這些提交創建新的提交,你也可以做一個摘櫻桃。說你的回購HEAD指向5點,它是分行主。
1 -> 2 -> 3 -> 4-> 5 (HEAD, master)
git co -b temp
1 -> 2 -> 3 -> 4 -> 5 (HEAD, master, temp)
git co master
git reset --hard HEAD~3
1 -> 2 (HEAD, master)-> 3 -> 4 -> 5 (temp)
git cherry-pick temp
1 -> 2 -> 3 -> 4 -> 5 (temp)
|
-> 5' (HEAD, master)
git branch -D temp
1 -> 2 -> 5' (master, HEAD)
我想這是你想要的。儘管你會做的更好,以創建還原上的5
注意頂部承諾:通過@fge給出的方法更簡潔,最好的,如果你以前做過一個互動變基。如果沒有,這個人會給你一個戰鬥的機會,因爲你永遠可以合併主回溫,並得到從你開始點在哪裏。
我已經承諾最近的變化! – Dineshkumar
然後跳過藏匿一部分;)編輯 – fge
還我已經推了! – Dineshkumar