For The Best Thing In The World

Work Hard to Enjoy Them.

git分割补丁

活用git rebase -i 就可以解决绝大部分补丁整理的问题。
假如我们有以下补丁:

========= commit 03bb9a14f5ea00d51d2edc14587b37b1ab9ccf5d
Author: YongHao Hu christopherwuy@gmail.com
Date: Fri Jul 10 17:23:02 2015 +0800

msvcp110: Add tr2_sys__Unlink implementation and test.

commit 24137cd93c783ced61ca152cb4384287e6859ba4
Author: YongHao Hu christopherwuy@gmail.com
Date: Tue Jul 7 11:04:25 2015 +0800

msvcp110: Add tr2_sys__Symlink implementation and test.

commit 51702048d9ecd1dc3887a63c057761a8547ce5f6
Author: YongHao Hu christopherwuy@gmail.com
Date: Thu Jul 2 23:23:51 2015 +0800

msvcp110: Add tr2_sys__Link implementation and test.

===========

假设我们想要分割 msvcp110: Add tr2_sys__Unlink implementation and test.这个commit,可以直接使用
git rebase -i HEAD~7(数字随意,反正在Unlink这个commit前就可以了),选择Unlink这个commit,
改成edit。
一般情况下,就是这样修改commit的,修改后再git rebase –continue.

但是,我们需要的是分割补丁:
选择git rebase HEAD^,撤销这次commit,再把想改动的文件git add, 再git commit,这样就可以分割很多补丁。

最后,git rebase –continue就可以了。