【轉】git合併commit

有時commit太多,並且可能一個commit只是提交一個小bug,那麼合併commit勢在必行。
有兩種方法:
一是在提交最後一個修改的commit使用參數,這時以前的一個commit將會合併到這個即將提交的commit中來:
git commit -a --amend -m "my message here"若是以前有一個提交,而且信息爲:
git commit -a -m "my last commit message"git

則這個commit message將不存在。但該commit的信息已經合併到"my message here"中了。it

第二個是,若是你提交了最後的修改,這時可用:
$ git reset --soft HEAD^ #或HEAD^意爲取消最後commit
$ git commit --amendast

這將會把最後一個commit合併到前一個提交中去,例如(由上往下讀):
git add b.text
git commit -a -m "my message here"
git add a.text
git commit -a -m "my last commit message"bug

那麼最後存在的將是"my last commit message"。也可後退n個,合併到前面第n+1個commit中去:
$ git reset --soft HEAD~n #後退到第n,我也不清楚具體含義。
$ git commit --amend [-m "new message"]方法

我以爲最方面的是調用reflog查看操做歷史,找到具體的commit id,而後直接git reset --hard [commit_id]就回到你要的版本!co

相關文章
相關標籤/搜索