首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >git :补丁格式检测失败。git应用程序也失败。

git :补丁格式检测失败。git应用程序也失败。
EN

Stack Overflow用户
提问于 2019-05-05 07:22:50
回答 2查看 1.9K关注 0票数 0

我正在努力学习git补丁,所以我设置了一个测试回购,并做了一些提交。

然后我创建了一个补丁:git format-patch -1 HEAD --stdout > changes.patch

接下来,我检查了一个新分支,并尝试使用changes.patch:git am .\changes.patch。它给了我错误的Patch format detection failed.

我在这里搜索,发现了this related question

所以我试了一下git apply .\changes.patch。它给了我error: unrecognized input

在我未受过训练的人看来,补丁文件似乎很好:

代码语言:javascript
运行
复制
From 1c054c05bc528afbd929a1744fcacf9d70069246 Mon Sep 17 00:00:00 2001
From: MyUsername <my.email@gmail.com>
Date: Sat, 4 May 2019 22:43:32 -0400
Subject: [PATCH] Commit 4

---
test.txt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/test.txt b/test.txt
index 58ef11d..763fe4e 100644
--- a/test.txt
+++ b/test.txt
@@ -1,3 +1,4 @@
 Initial commit
 Commit 2
-Commit 3
\ No newline at end of file
+Commit 3
+Commit 4
\ No newline at end of file
-- 
2.21.0.windows.1

我认为修补程序可能与repo位于同一个目录中,所以我将它移到了另一个目录。结果是一样的。

我还注意到很多人在命令中都有一个<,所以我尝试了:git am < ..\changes.patch。显然那不是有效的语法。

这是在Windows上使用64位的git和PowerShell。

有什么想法吗?

EN

Stack Overflow用户

发布于 2019-05-05 07:33:29

要从HEAD创建修补程序吗?然后,您可以简单地执行以下操作:

要保存修补程序:

代码语言:javascript
运行
复制
git show HEAD > /some/location/patch.txt

若要应用修补程序:

代码语言:javascript
运行
复制
git apply /some/location/patch.txt

如果您想要从一堆提交创建修补程序,您可以:

代码语言:javascript
运行
复制
git diff OLDEST_COMMIT..NEWEST_COMMIT > /some/location/patch.txt

例如,通过这种方式可以创建一个包含功能分支中的更改的修补程序:

代码语言:javascript
运行
复制
git diff origin/master...origin/new_feature > /some/location/feature.patch

注意这三个点,它们意味着您希望origin/new_feature中包含的关于两个分支的共同祖先的更改。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55989734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档