如何在修复后应用被拒绝的垃圾箱?
我正在尝试使用git apply将修补程序应用于文件。整体补丁失败,所以我用git apply --reject。如何在修复后应用被拒绝的垃圾箱?
检查生成的.rej文件显示我有什么问题,现在我在.rej文件中修复了这个问题。
但是,试图以应用.rej文件失败消息
致命的:无头补丁片段第2行:...
是否有重新申请的.rej方式解决那里的问题后的文件? 还是必须修改原始补丁并重新运行git apply?因为原来的补丁包含了几十个文件的补丁,我不想git checkout应用的修改,以重新git apply整个固定的补丁文件
这将是在这种情况下有点麻烦。
回答:
要澄清what @julian-squires said,问题是.rej文件丢失diff a/thefile...和@@ -line/columns...之间的一些小东西。
ORIGINAL .rej文件
diff a/the/original/file.cs b/the/original/file.cs (rejected hunks)@@ -27,9 +27,9 @@ whatever was on that line
您需要a/b的文件名从diff线复制,并与变化的指标添加它们下面,如:
已更新.rej档案
diff a/the/original/file.cs b/the/original/file.cs (rejected hunks)--- a/the/original/file.cs
+++ b/the/original/file.cs
@@ -27,9 +27,9 @@ whatever was on that line
那么你可以申请的.rej文件,比如常规补丁。
回答:
没有办法手动修改文件,其中有.rej文件。你说你确实解决了这个问题。一旦所有.rej问题都已经照顾好,你已经准备好了git commit。 git apply --reject仍然可以节省一点时间,git apply --reject会在可能的地方修改文件。
回答:
我最近有这个问题,而使用git am --reject来应用一堆补丁。我走近它的方式是按摩.rej文件头弄成patch(1)会认识到,与
sed -e 's/^diff a\/\(.*\) b\/\(.*\)[[:space:]].*rejected.*$/--- \1\n+++ \2/' ,并用emacs的(其diff-mode将更新行数在你修改补丁帅哥)和应用修改它们他们与patch。
我的工作流程结束这样看:在Emacs的经常性情况
$ (for i in $(find . -name \*.rej); do sed -e 's/^diff a\/\(.*\) b\/\(.*\)[[:space:]].*rejected.*$/--- \1\n+++ \2/' -i $i &&
emacsclient $i &&
patch -p0 < $i;
done) && git add -u && git clean -xdf && git am --continue
用合适的宏设置。不是最优雅的方法,但它的工作。
以上是 如何在修复后应用被拒绝的垃圾箱? 的全部内容, 来源链接: utcz.com/qa/264954.html

