草庐IT

git - git 可以格式化补丁,以便它可以与补丁程序一起使用吗?

我需要从git存储库创建简单的补丁,这些补丁可以通过简单的补丁命令行实用程序应用。可以吗? 最佳答案 gitdiff生成的补丁由patch工具正确处理。patch跳过git附加到补丁文件的所有附加信息。要应用补丁,您很可能需要-p1选项。 关于git-git可以格式化补丁,以便它可以与补丁程序一起使用吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1594477/

Git 给工作目录打补丁

我有一个包含大量更改的补丁,我想将这些更改分成多个提交并可能修改其中的一些更改。我想将此补丁应用到我的工作目录,然后手动提交更改。是否可以对git中的工作目录应用补丁? 最佳答案 您可以使用gitapply应用补丁:gitapply这不会创建任何提交。事实上,如果没有任何选项,gitapply命令甚至不需要Git存储库。它只是将补丁应用于文件。 关于Git给工作目录打补丁,我们在StackOverflow上找到一个类似的问题: https://stackove

git - 为什么 git 应用带有二进制文件的补丁而不创建二进制文件?

我有一个带有两个二进制文件的git补丁(它是新添加的库)。我尝试应用补丁,但未创建二进制文件。我尝试了gitapply和--binary选项。有没有其他选项可以从gitpatch添加二进制文件?我只需要二进制文件。 最佳答案 --binary选项在您创建补丁文件时使用,而不是在您应用它时使用。这意味着,代替你当前的gitdiffbranch1branch2>patch-file,你必须这样做:gitdiffbranch1branch2--binary>patch-file。然后,以与您相同的方式使用gitapplypatch-fil

git - 在不将存储库克隆到 Github 的情况下将补丁提交到 Github 项目?

我有一个本地存储库,它是Github上存储库的完整副本。我做了一个更改,我想为原始项目做出贡献。如何在不重新加载Github上的项目的情况下执行此操作?我不认为打开一个问题是正确的方式..我在HowcanIcontributeapatchtogithub?中看到我应该fork项目,但由于我的本地存储库“链接”到原始Github存储库,我不想把它搞砸。因此,如果真的不鼓励以除fork之外的任何方式共享补丁,我如何才能简单地fork原始项目,merge我的更改,然后与原始存储库共享它们?如果我在“提交”更改但尚未接受更改后删除fork,我的提交是否会消失? 最佳

Git:接收电子邮件 Hook ,包括差异补丁?

在使用谷歌搜索将所有提交通过电子邮件发送到远程/共享存储库后,我找到了Git的接收后Hook。这个post-receivehook的问题是它只能提供提交者、日志消息、日期、受影响的文件的能力。我还想在电子邮件中查看受影响的文件生成的补丁,以查看对代码进行了哪些更改。Subversion做得相当好。有没有人有解决方案来解决可能传递给执行此操作的接收后Hook的环境变量?或者更好的是,一个已经准备好的例子?谢谢大家! 最佳答案 最近的Git版本应该安装一个post-receive-email脚本。其中,它说:hooks.showrevT

git - 在不使用反向补丁的情况下从分支中删除旧的 Git 提交?

这个问题在这里已经有了答案:HowdoIdeleteacommitfromabranch?(36个答案)关闭7年前。我有一个像这样的主分支..A--B--C--D--E--HEAD是否有任何命令可以删除一个旧提交并保留其他提交,比如提交C?最后变成这样A--B--D--E--HEAD我知道我们可以使用反向补丁并应用带有反向补丁的新提交来删除提交C,但是树结构不会那么清晰并且看起来很笨重,即A--B--C--D--E--C(applyreversepatch)--HEAD有人知道吗?

Git 应用补丁静默失败(没有错误但什么也没有发生)

我正在尝试应用补丁,但gitapplypatch没有给我任何错误:sashoalm@SASHOALM-PC/c/Workspace/tesseract-git/api(master)$gitapply../../commit-d0d9477sashoalm@SASHOALM-PC/c/Workspace/tesseract-git/api(master)$如您所见,没有给出任何错误消息。但是当我打开历史记录时,什么都没有提交,索引是空的。就好像我没有发出gitapply命令一样。我不知道如何解决这个问题,因为Google没有错误。编辑:我忘了说了,但我正在尝试从Tesseract的存储

git - 有没有办法比较两个差异或补丁?

有没有办法测试两个差异或补丁是否等效?假设您有以下git提交历史,其中功能F和G可以完全rebase到E:G/A--B--C--D--E\F由于我们当前部署过程的限制,我们有以下有点相关的图表(它不受版本控制)G'/------------E'\F'F'和G'最终会被应用到头部E',在一些有待确定的顺序中,所以它最终会像这样------------E'--G'--F'有没有办法测试从E'到G'的差异是否与G从B的git提交产生的​​补丁相同?我完全意识到,在一个理想的世界中,版本控制会解决这个问题,我们正在实现这一目标,但那不是我们目前的处境。您基本上可以在单独的checkout上播放

git - 单个文件的格式补丁

我有一个名为test_module.c的文件,其中有一些差异,我想将其应用到我的本地工作副本。我尝试通过执行以下操作从远程创建补丁文件。但是,git没有提示任何错误。也没有创建任何补丁文件。gitformat-patchmaster/dev_branchtest/test_module.c可以创建单个文件的补丁,我可以应用吗?(使用git版本1.7.5.4) 最佳答案 如果您给gitformat-patch一个单独的修订版,它将为自该修订版后的每个提交生成补丁。如果您没有看到该命令的输出,那么我怀疑origin/master和您当前

git - 如何删除已应用的 git 补丁?

我有一个git仓库,我们在测试环境中应用了很多补丁。gitapply--stat--check--ignore-whitespace/home/kent/Desktop/patches/test.patch--exclude.gitignoregitam-s--ignore-whitespace/home/kent/Desktop/patches/test.patch--exclude.gitignore--exclude.gitignore如果我必须删除补丁并应用新补丁,目前我克隆实时内容并重新应用所有测试补丁并再次推送。这个过程有点麻烦,有时还会导致错误,我也会错过一两个补丁。我想