Git补丁有多个提交,最后一个没有应用



我有两个存储库,正在尝试使用补丁将更改从一个移动到另一个。下面是场景。有一个提交(f31541e(更改了3个文件的内容。然后最后一次提交(日志顶部的b546664(删除其中一个文件c.txt。

$ git log                                                                       
**commit b54666405a5126e6efcb8b605b3bb0182200f258** (HEAD -> develop, origin/develop
)                                                                               
Author: Andy Whelan                                         
Date:   Tue Feb 25 12:31:24 2020 -0500                                                                                                                 
Deleted c.txt                                     
**commit f31541e1b6f417deab23e38bab25f854ac45ade6** (origin/patch-delete-c, origin/p
atch-branch-src-us1, patch-delete-c, patch-branch-src-us1)                      
Author: Andy Whelan                                         
Date:   Tue Feb 25 11:00:49 2020 -0500                                                         
Modified all 3 files.                                          
**commit 32b12065cfa3aa25f07c2698197788792c55b99d** (origin/master, master)         
Author: Andy Whelan                                         
Date:   Tue Feb 25 08:39:54 2020 -0500                                          
Adding a.txt, b.txt, c.txt                                                  

我正在创建一个如下的补丁文件:

git format-patch -2 b54666405a5126e6efcb8b605b3bb0182200f258 --stdout > can.patch

补丁文件(下面(底部有最新的更改(已删除的文件(,顶部有另一个。以下是这个文件的一些内容,我已经注释掉了3个文件中文本更改的部分,因为这是有效的(//内容更改3个文件,这是有效(。我遇到的问题是c.txt没有像应该的那样被删除。3个文件的文本更改被应用。但文件删除不是。有人知道我可能做错了什么吗?

From f31541e1b6f417deab23e38bab25f854ac45ade6 Mon Sep 17 00:00:00 2001
From: Me <me@someplace.com>
Date: Tue, 25 Feb 2020 11:00:49 -0500
Subject: [PATCH 1/2] patch modifies all 3 files
---
//content changes 3 files, this works
-- 
2.20.1.windows.1

From b54666405a5126e6efcb8b605b3bb0182200f258 Mon Sep 17 00:00:00 2001
From: Me <me@someplace.com>
Date: Tue, 25 Feb 2020 12:31:24 -0500
Subject: [PATCH 2/2] applied patch-delete-c
---
c.txt | 2 --
1 file changed, 2 deletions(-)
delete mode 100644 c.txt
diff --git a/c.txt b/c.txt
deleted file mode 100644
index 1a7ca5c..0000000
--- a/c.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-this is file c
-add a line to c
 No newline at end of file
-- 
2.20.1.windows.1

请参阅上面torek关于使用的评论

git am <patchfilename>

这是正确的答案。

相关内容

最新更新