[英]How to apply git diff --binary patches without git installed?
我使用git diff来生成可以应用于远程服务器以更新项目的补丁。
在本地,我跑:
git diff --no-prefix HEAD~1 HEAD > example.patch
将example.patch上传到远程服务器并运行:
patch --dry-run -p0 < example.patch
如果干运行成功,我运行:
patch -p0 < example.patch
这种方法很有效,除非diff包含二进制文件。 今天,我发现我可以使用:
git diff --no-prefix --binary HEAD~1 HEAD > example.patch
问题是无法使用补丁应用生成的补丁文件。
如何在不安装git服务器的情况下应用这些二进制补丁文件?
我想保持使用干跑的能力。
谢谢
对于一个古怪的答案,你可以做的是使用sshfs将远程系统挂载到你拥有git的地方,然后以这种方式运行你的命令。 从不同的参考框架中解决问题:为什么不创建一个数据来到工具的环境(通过sshfs?),而不是想知道如何运行工具不在哪里的命令。
在许多情况下,在这种情况下,您无法使用更高级的工具创建数据,并且使用不太高级的工具。 这个patch
适用于非二进制git-diffs,这是一个令人高兴的巧合。 git diff
引入了标准差异的扩展。
要实现这一目标,您可以:
scp
/ rsync
新文件。 小的也不错。 根据更改日志 ,我们可以预期补丁版本> 2.6.1以支持GIT二进制差异。
用这个
git apply example.patch
git add --patch
git commit
您可以省略--patch标志,但不会看到每个更改并检查修补过程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.