linux - 使用 git am 打补丁

标签 linux git

我知道有一种方法可以使用 git am 将补丁应用到我的提交中。我一直在使用命令 patch -pnum < patch_file_name.txt 来这样做。 那么有人可以解释一下 git am 是如何工作的吗?我需要打开一个邮箱才能使用它吗?

谢谢。

最佳答案

git am 将补丁应用到您的存储库。它会更改补丁文件中指定的文件并创建一个 git 提交。

git am 期望补丁文件以特殊方式格式化,如电子邮件提交补丁。它还包含一条提交消息。 git am 的补丁是使用 git format-patch 命令生成的。

普通补丁是使用 git diff 生成的,不适用于 git am

patch 命令理解两种差异文件样式。它应用补丁文件中的更改而不执行任何其他操作。

你不需要打开邮箱就可以使用git am


git am 的典型补丁文件:

From b405aa93926c458a6723c8a2b3d2e768da26350b Mon Sep 17 00:00:00 2001
From: Foo Bar <email@example.com>
Date: Sun, 1 Feb 2015 02:33:35 +0100
Subject: [PATCH] update tasks

---
 TODO.md | 1 ++++
 1 file changed, 1 insertions(+)

diff --git a/TODO.md b/TODO.md
index 9b7aad8..8cb25ce 100644
--- a/TODO.md
+++ b/TODO.md
@@ -8,7 +8,11 @@
   - bar
   - foo
 - [ ] lorem ipsum
+- [ ] lorem dolor

2.2.2

patch/git apply 命令生成的差异:

diff --git a/TODO.md b/TODO.md
index 9b7aad8..8cb25ce 100644
--- a/TODO.md
+++ b/TODO.md
@@ -8,7 +8,11 @@
   - bar
   - foo
 - [ ] lorem ipsum
+- [ ] lorem dolor

关于linux - 使用 git am 打补丁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28258179/

相关文章:

linux - 从不断更新的目录中读取更新

git - git 可以告诉我仓库何时从原点 pull 出吗

git - 计算所有*未提交*代码的 git hash

Linux 多 GPU 离屏渲染

java - 我想连续运行我的java线程

php - 有什么方法可以在 php 文件中启用 pdo_mysql 吗?

linux - 如何增加worker_process nginx directadmin

git - 从历史中删除旧的 Git 提交?

asp.net-mvc - 如何将辅助角色部署到 azure 中?

git - 防止 CSV 文件的 EOL 规范化