如何在没有安装git的情况下应用git diff --binary补丁?

Tar*_*ski 13 linux git deployment diff patch

我使用git diff来生成可以应用于远程服务器以更新项目的补丁.

在本地,我跑:

git diff --no-prefix HEAD~1 HEAD > example.patch
Run Code Online (Sandbox Code Playgroud)

将example.patch上传到远程服务器并运行:

patch --dry-run -p0 < example.patch
Run Code Online (Sandbox Code Playgroud)

如果干运行成功,我运行:

patch -p0 < example.patch
Run Code Online (Sandbox Code Playgroud)

这种方法很有效,除非diff包含二进制文件.今天,我发现我可以使用:

git diff --no-prefix --binary HEAD~1 HEAD > example.patch
Run Code Online (Sandbox Code Playgroud)

问题是无法使用补丁应用生成的补丁文件.

如何在不安装git服务器的情况下应用这些二进制补丁文件?

我想保持使用干跑的能力.

谢谢

chi*_*gsy 6

对于一个古怪的答案,你可以做的是使用sshfs将远程系统挂载到你拥有git的地方,然后以这种方式运行你的命令.从不同的参考框架中解决问题:为什么不创建一个数据来到工具的环境(通过sshfs?),而不是想知道如何运行工具不在哪里的命令.