最近在维护的一个项目,突然转移到了内网,不能直接用git pull命令进行更新了,手动替换的话,又不太方便,运用diff命令进行打包,批量替换的话,对于每次的修改日志又没办法统一的很好,于是想到git生成补丁和打补丁这个操作
生成补丁
对于生成补丁,比较简单,基本也不会发生太大的问题,就记录几条简单的命令
format-patch默认生成补丁的编号是从1开始,后面追加 –start-number=NUMBER 命令,可以生成指定编号
准备好生成的补丁,就可以转移到内网环境,进行打补丁操作了~
应用补丁
打补丁命令如下:
应用补丁成功后,会直接显示补丁的commit信息,如果发生冲突的话,会输入以下信息
如果发生这种情况的话,可以执行如下命令
git会先将补丁中的未冲突部分,进行合并,然后对于冲突的文件,会生成同目录下,同名的.rej文件,文件中可以查看变动记录
对比文件后,将修改文件提交到暂存区,然后执行
就可以将补丁成功进行应用
运用这种方式,就可以保证我在本地和内网环境中的commit信息保持一致,同时,如果在内网维护时出现的问题,也可以直接生成补丁,应用到本地中,大大提高了代码的可维护性