使用Git制作patch文件

项目中是用Review board来做code review,用Git来管理代码,所以每次提交之前,需要把修改的代码做成patch文件,上传到Review board里去,再发给相关同事检查。

这里简单记录下制作patch文件的过程。

假设大家一直工作在master分支上,现在当前目录下的repo已经git pull到最新,同时需要提交的代码已经完成,检查git status

1
2
3
4
5
6
7
8
9
rx:pytest_proj reed$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)

change.txt

nothing added to commit but untracked files present (use "git add" to track)

执行git branch patch生成一个名为patch的分支,再git checkout patch切换到patch分支。

在patch分支上git add .,继续git commit,完成commit后再执行git format-patch -M master生成patch文件,其含义是将当前分支上的,所有的,更加新的提交(和master分支相比)打包成patch文件,然后可见当前目录下会生成一个.patch文件。

然后这个patch文件即可上交了,最后需要把当前repo拆回原状,注意当前分支还是patch分支,需要先get reset --soft 上次commit的hash,再继续git reset HEAD .,最后切回最开始工作的master分支即可。