使用git的时候,需要删除几个id,会对到之前的代码,但又想保留现在的代码,以便后面从新合并,所以就将现在的代码打包成patch,留到下次合并。
参考链接
http://www.jianshu.com/p/e5d801b936b6
http://www.cnblogs.com/y041039/articles/2411600.html
生成patch
可以用git diff命令或者git format-patch生成patch。
git format-patch
git format-patch <id>:从id这个版本到现在的patch。
如果有多个id的log信息,那么就会生成多个patch文件。
git patch命令生成的patch是根据时间节点来的,而且在打patch的时候,一个patch对应一个时间节点。
使用git log查看id信息。
git format-patch HEAD^ # 最近的1次commit的patch
git format-patch HEAD^^ # 最近的2次commit的patch
git format-patch HEAD^^^ # 最近的3次commit的patch
git format-patch HEAD^^^^ # 最近的4次commit的patch
git diff
git diff命令不管有几个时间节点,都只会生成一个patch文件。
git diff <id1> <id2> > file.patch
旧的id1在前。
使用patch
先检查patch文件:git apply --stat newpatch.patch
检查能否应用成功:git apply --check newpatch.patch
使用git am会有patch里面的log信息,包括comment等。
打补丁
git am --signoff < newpatch.patch
git apply newpatch.patch
使用git apply 命令打入patch就不会记录commit的记录,而使用git am的记录就会有记录。
Tony Liu
2017-12-20