如何在修复后应用被拒绝的垃圾箱?

我正在尝试使用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 commitgit 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

回到顶部