如何在没有安装Git的情况下应用`git diff`补丁?
我的客户端如何在没有安装git diff
情况下应用由git diff
创build的补丁? 我试图使用patch
命令,但它总是要求文件名补丁。
git diff > patchfile
和
patch -p1 < patchfile
工作但是很多人在评论和其他答案中注意到补丁不理解添加,删除和重命名。 有没有select,但如果你需要处理文件添加,删除和重命名, git apply patchfile
。
编辑 2015年12月
最新版本的patch
命令(2.7,2012年9月发布) 支持“diff -git”格式的大部分function,包括重命名和复制,权限更改和符号链接差异 (但还没有二进制差异)( 发布公告 )。
因此,如果提供了一个使用当前/最新版本的patch
,则不需要使用git
来将其差异作为补丁应用。
尝试这个:
patch -p1 < patchfile
使用
git apply patchfile
如果可能的话。
patch -p1 < patchfile
有潜在的副作用。
git apply
也处理文件增加,删除和重命名,如果他们在git diff
格式描述,哪个patch
不会做。 最后, git apply
是一个“应用全部或全部中止”的模型,其中一切都应用或者什么都不是,而补丁可以部分应用补丁文件,使工作目录处于奇怪的状态。
我用
patch -p1 --merge < patchfile
这样冲突就可以照常解决了。
尝试这个:
$ git apply file.diff