如何在修复后应用被拒绝的垃圾箱?
我正在尝试使用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