【转】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

相关文章
相关标签/搜索