我正在尝试将一个.patch文件应用到我的源代码上,但是失败了,因为我的文件索引(10655)比补丁索引(10755)旧。
现在我知道我可以修改补丁的文件索引,但我想知道是否有办法使用git来忽略文件索引的差异?
现在我知道我可以修改补丁的文件索引,但我想知道是否有办法使用git来忽略文件索引的差异?
patch
应用程序对其应用的内容要求不那么严格。例如,只需运行“patch -p0 < file”,它就可以应用该文件,然后你可以提交它。git apply
出现问题,因为git apply
使用文件的索引状态(即LFS哈希)而不是工作区状态(即文件系统上的状态)。patch
,因为我还需要该方法支持git二进制差异,而patch
会显示"不支持git二进制差异"。所以对我来说,其他解决方案不起作用。git apply
有一个选项,可以轻松地忽略git仓库,但在我的git版本(2.30.2)中没有找到这个选项。
mv .git .git-hidden-to-git-apply
git apply stuff.patch
mv .git-hidden-to-git-apply .git
这个想法是从git仓库外部运行git apply
命令。
cd ..
git apply stuff.patch --directory=my_git_repo --unsafe-paths
cd my_git_repo