某几个文件的代码修改后要发到同事开发的代码中,或者修复了bug后要将修复的代码添加到另外一份库中,这个时候手动记下改动太麻烦,git有创建补丁的功能,即将改动的代码统一添加到一个补丁文件中,后缀名为.patch,然后通过邮件或U盘的形式将补丁发送到需要的版本中,然后再执行打补丁命令,这样改动会自动合并到该版本库中。
git创建补丁git format-patch
git可以将修改过的差异打包成文件,以补丁的形式发布,补丁的后缀名为patch,创建的补丁保存在当前目录下。
1、通过git diff创建补丁
命令:git diff > my.patch
该命令最直接的是将diff不同的地方将其打包成补丁,以my.patch的文件将diff的内容保存下来,文件的内容如下所示
diff --git a/reset.txt b/reset.txt
index 7389186..53cef72 100644
--- a/reset.txt
+++ b/reset.txt
@@ -1 +1,4 @@
add reset
+
+add git patch test
+
命令:git diff --no-prefix > my.patch
该命令与上一个命令不同的是,将对比文件前后的形象标志去掉了。
diff --git reset.txt reset.txt
index 7389186..53cef72 100644
--- reset.txt
+++ reset.txt
@@ -1 +1,4 @@
add reset
+
+add git patch test
+
命令:git diff master > patch
与上面的命令相同,即将master上的改动打包成补丁。
2、通过某个提交创建补丁
具体将某一次的commit提交的内容和以后提交的commit的内容分别以文件分开,将改动封装成补丁。
命令:git format-patch <commit id>
commit 99e826d211ddea11689d09e0362877c076522b13
Author: zx <zx@git.com>
Date: Sun Nov 6 20:54:33 2016 +0800
add test git patch
commit 1996afe5edeaab3f7269dcbe51f2d658936d7f8c
Merge: 546d73a 0f58788
Author: zx <zx@git.com>
Date: Sun Nov 6 20:12:38 2016 +0800
add readme
commit 546d73a5842ecd4df8dc35994bc520b22c12fcb3
Author: zx <zx@git.com>
Date: Sun Nov 6 09:26:29 2016 +0800
add reset.txt
ghost@ghost-machine:~/workspace/tes