背景
项目与项目之间,需要存在参考与移植代码,使用diff与patch可以快速的小范围的比对并移植代码;
操作
创建目录A生成a.c
mkdir dirA
cd dirA
## <<-EOF 与 << EOF的区别是,前者只要遇到EOF就结束,后者需要行首EOF才能结束。
cat <<- EOF > a.c
11111
11111
11111
11111
EOF
拷贝目录A生成目录B并修改a.c
cp -rf dirA dirB
cd dirB
cat <<- EOF > a.c
22222
11111
11111
22222
EOF
比对生成diff文件
# 实现效果将dirB适配成dirA,所以需要以dirB作为source
diff -uN ./dirB ./dirA &> B2A.patch
使用增量文件B2A.patch升级B
# 需要进入到dirB
cd dirB
patch -i /path/to/B2A.patch
使用增量文件B2A.patch还原B
# 需要进入到dirB
cd dirB
patch -R -i /path/to/B2A.patch