如果基础不是 git 存储库,有没有办法创建 git 补丁?
Is there a way to create a git patch if the base is not a git repository?
在 git 存储库中,我在调用 git diff
时得到一个 git 补丁,例如
diff --git a/a b/a
index 7898192..6178079 100644
--- a/a
+++ b/a
@@ -1 +1 @@
-a
+b
可以传递给 patch -p1
。有什么方法可以创建这样的补丁,而不需要差异文件位于 git
存储库中的条件。
git diff path1 path2
生成一个补丁,但它(几乎)与 diff -u
生成的补丁格式相同。这导致非常奇怪地缺乏联机帮助页和教程来涵盖在应用程序发生之前删除创建补丁的第二个文件的用例。它几乎在所有用途中都被删除,因为否则每次调用 patch 都可以用 cp
替换(至少在同一个存储库中)。也许有必要编辑补丁 - 世界上没有任何解释。
我知道可以使用 git init
轻松创建 git
存储库,但我正在寻找避免这种情况的可能性。
git diff
可以在 git 存储库之外使用,也可以与 git diff path1 path2
一起使用,但是 diff -u
创建可以以类似方式使用的统一补丁。
虽然有人可能认为需要根据联机帮助页和教程调整输出路径,但应该修补哪个文件的问题表明错误的 -p
值远非直观,应该是记录在案。
在 git 存储库中,我在调用 git diff
时得到一个 git 补丁,例如
diff --git a/a b/a
index 7898192..6178079 100644
--- a/a
+++ b/a
@@ -1 +1 @@
-a
+b
可以传递给 patch -p1
。有什么方法可以创建这样的补丁,而不需要差异文件位于 git
存储库中的条件。
git diff path1 path2
生成一个补丁,但它(几乎)与 diff -u
生成的补丁格式相同。这导致非常奇怪地缺乏联机帮助页和教程来涵盖在应用程序发生之前删除创建补丁的第二个文件的用例。它几乎在所有用途中都被删除,因为否则每次调用 patch 都可以用 cp
替换(至少在同一个存储库中)。也许有必要编辑补丁 - 世界上没有任何解释。
我知道可以使用 git init
轻松创建 git
存储库,但我正在寻找避免这种情况的可能性。
git diff
可以在 git 存储库之外使用,也可以与 git diff path1 path2
一起使用,但是 diff -u
创建可以以类似方式使用的统一补丁。
虽然有人可能认为需要根据联机帮助页和教程调整输出路径,但应该修补哪个文件的问题表明错误的 -p
值远非直观,应该是记录在案。