git

五制作patch

1.如果应用了某一个补丁之后想恢复原来的文件,那么使用参数 -R,例如:
1) 首先打了一个补丁
$ patch -p1 < my.patch
2)然后想恢复原来的文件,那么
$ patch -R -p1 < my.patch


2.如果要为多个文件制作补丁,那么可以使用 git 来快速生成,因为 git 是一个局部目录的库,所以不会有多余开销。

1)创建 git
$ cd src
$ git init
2)添加需要制作补丁的文件,或者全部添加
$ git add *
或者
$ git add *.c
3)提交原始文件
$ git commit -a -m'init'
4)修改源文件
。。。
5)创建补丁
$ git diff > my.patch

两者配合时候可以合并、编辑以前的多个补丁文件,最后生成一个最新版本的补丁文件。
这样创建的补丁文件目录会自动增加一个前缀 a/ b/,例如
diff --git a/Makefile.in b/Makefile.in
index e548e99..c019753 100644
--- a/Makefile.in
+++ b/Makefile.in

这时候应用补丁的时候需要到包的根目录,使用 -p1 选项
$ patch -p1 < my.patch

如果不想在文件名前面增加前缀,那么使用选项 --no-prefix
$ git diff --no-prefix > my.patch

生成的补丁头如下,没有了文件目录的前缀
diff --git Makefile.in Makefile.in
index e548e99..c019753 100644
--- Makefile.in
+++ Makefile.in

用这个打补丁的时候就需要使用 -p0 选项
$ patch -p0 < my.patch

3.添加文件或者文件夹后,打patch

1)前面步骤除了最后一步,照做!

2)mkdir 或 vi new.c 添加文件或文件夹。

3)git add .把所有文件都进行添加。

4)git commit把修改提交。

5)git log查看最近两次修改的commit id. commit 后面一长串的id号,比如8817e150d4d0ad2bdda59235d43a6caa0ec5060c

6)git diff commitid_orginal commitid_new > test.patch  new和org是一前一后的两次不同时间提交的id号。这样就能把新增的文件和文件夹打进patch了。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值