记录这篇是来源于我有一个项目,将代码从仓库拉下来后,需要修改一些配置才能够运行。我不想每次都手动去修改那几个需要自定义的配置文件,所以我做了一个patch。然后每次把代码拉下来后,运行一下git apply set_config.patch
,所有的配置就自动修改好了。
但是今天我apply这个patch的时候,我得到了一条错误信息:
$ git apply set_config.patch
error: patch failed: conf/file_a.conf:18
error: conf/file_a.conf: patch does not apply
这说明我的patch不能应用到当前代码了。
于是我需要搞清楚为什么,然后再对patch做一些手动的修改,就能够应用这个patch了。
于是我认真地学习了一下git diff
输出的含义。因为我的patch文件是通过git diff > set_config.patch
生成的。
我主要是不明白patch文件中@@ -83,7 +83,7 @@ class aaa(threading.Thread):
这句话的含义,于是我查到了:
第二部分,变动的位置用两个@作为起首和结束。
@@ -1,7 +1,7 @@
前面的"-1,7"分成三个部分:减号表示第一个文件(即f1),"1"表示第1行,“7"表示连续7行。合在一起,就表示下面是第一个文件从第1行开始的连续7行。同样的,”+1,7"表示变动后,成为第