当前位置:  开发笔记 > 开发工具 > 正文

如何删除应用的git补丁?

如何解决《如何删除应用的git补丁?》经验,为你挑选了1个好方法。

我有一个git repo,我们在测试环境中应用了很多补丁.

git apply --stat --check --ignore-whitespace /home/kent/Desktop/patches/test.patch --exclude .gitignore

git am -s --ignore-whitespace /home/kent/Desktop/patches/test.patch --exclude .gitignore --exclude .gitignore

如果我必须删除补丁并应用新补丁,目前我克隆实时内容并重新应用所有测试补丁并再次推送.这个过程有点麻烦,有时也会导致错误我也会错过一两个补丁.

我想知道是否有办法删除补丁并应用新补丁

另外,如果我们每次都提交补丁然后我可以使用,那么添加一种方法就是:

git revert <>

以上对我来说并不适用.



1> ash..:

TL; DR

您可以使用以下命令恢复修补程序:

$ git apply -R 

您可以通过以下方式之一生成修补程序:

这将从差异生成补丁

$ git diff --patch > 0001-some-modifications.patch

如果要为HEAD提交生成补丁:

$ git show --patch HEAD^ > 0001-some-modifications.patch

您可以从HEAD 生成前3次提交的补丁:

$ git show --patch HEAD~3 > 0001-some-modifications.patch

您可以通过以下方式应用补丁:

$ git apply -- 0001-some-modifications.patch

您可以使用以下命令恢复修补程序:

$ git apply -R 

当你生成一个补丁时,它只是一个带有元数据的差异; 文件,行号添加/删除; 以下内容:

commit 9dad147cbf16befecdef2e812c1249499bdef5ac
Author: My Name 
Date:   Mon Dec 21 20:46:01 2015 +0000

    Example commit message.

diff --git a/src/example.md b/src/example.md
new file mode 100644
index 0000000..ab73512
--- /dev/null
+++ b/src/example.md
@@ -0,0 +1,3 @@
+# Example document
+
+ Hello World

因此,当您使用时,您git apply实际上是根据树应用编辑.

当你运行git apply -Rgit时,只需执行与补丁相反的操作.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有