使用 git diff 为未提交的更改创建补丁显示 a/.... 和 b/
Creating patch using git diff for uncommitted changes shows a/.... and b/
我正在尝试使用命令行为工作区中未提交的更改创建补丁。我正在使用以下命令创建补丁
git 差异 > diff.patch .
这确实创建了一个补丁,但在补丁中它显示了差异
diff --git a/hedwig-client/src/main/java/org/apache/hedwig/client/netty/impl/multiplex/MultiplexHChannelManager.java b/hedwig-client/src/main/java/org/apache/hedwig/client/netty/impl/multiplex/MultiplexHChannelManager.java
index f28a6b2..3db2b7f 100644
--- a/hedwig-client/src/main/java/org/apache/hedwig/client/netty/impl/multiplex/MultiplexHChannelManager.java
+++ b/hedwig-client/src/main/java/org/apache/hedwig/client/netty/impl/multiplex/MultiplexHChannelManager.java
我希望路径中的 a 和 b 不存在。所以它应该看起来像
diff --git hedwig-client/src/main/java/org/apache/hedwig/client/netty/impl/multiplex/MultiplexHChannelManager.java hedwig-client/src/main/java/org/apache/hedwig/client/netty/impl/multiplex/MultiplexHChannelManager.java
知道如何做到这一点。
只需通过删除有问题的字符来修改补丁:
git diff | sed -e 's|^\(diff --git \)a/\(.* \)b/\(.*\)||' > diff.patch
这将检查模式 diff --git a/... b/...
,将其分成 5 个部分(diff --git
、a/
...
、b/
、...
) 并省略 a/
和 b/
部分。
有一个命令行开关:git diff --no-prefix
,但你真的不想使用 git diff
,你应该做正确的事并在私有分支上提交,然后使用git format-patch
从中生成格式良好的补丁系列(它接受相同的开关)。
还有--src-prefix
和--dst-prefix
来指定任意路径。但请记住,即使不使用 git,大多数人也会使用 patch -sp1
或类似的东西……几乎总是需要前缀路径。
我正在尝试使用命令行为工作区中未提交的更改创建补丁。我正在使用以下命令创建补丁
git 差异 > diff.patch .
这确实创建了一个补丁,但在补丁中它显示了差异
diff --git a/hedwig-client/src/main/java/org/apache/hedwig/client/netty/impl/multiplex/MultiplexHChannelManager.java b/hedwig-client/src/main/java/org/apache/hedwig/client/netty/impl/multiplex/MultiplexHChannelManager.java
index f28a6b2..3db2b7f 100644
--- a/hedwig-client/src/main/java/org/apache/hedwig/client/netty/impl/multiplex/MultiplexHChannelManager.java
+++ b/hedwig-client/src/main/java/org/apache/hedwig/client/netty/impl/multiplex/MultiplexHChannelManager.java
我希望路径中的 a 和 b 不存在。所以它应该看起来像
diff --git hedwig-client/src/main/java/org/apache/hedwig/client/netty/impl/multiplex/MultiplexHChannelManager.java hedwig-client/src/main/java/org/apache/hedwig/client/netty/impl/multiplex/MultiplexHChannelManager.java
知道如何做到这一点。
只需通过删除有问题的字符来修改补丁:
git diff | sed -e 's|^\(diff --git \)a/\(.* \)b/\(.*\)||' > diff.patch
这将检查模式 diff --git a/... b/...
,将其分成 5 个部分(diff --git
、a/
...
、b/
、...
) 并省略 a/
和 b/
部分。
有一个命令行开关:git diff --no-prefix
,但你真的不想使用 git diff
,你应该做正确的事并在私有分支上提交,然后使用git format-patch
从中生成格式良好的补丁系列(它接受相同的开关)。
还有--src-prefix
和--dst-prefix
来指定任意路径。但请记住,即使不使用 git,大多数人也会使用 patch -sp1
或类似的东西……几乎总是需要前缀路径。