我有一个包含一些二进制文件的git存储库。我已经将chmod 755暂存到其中一个二进制文件中,并且我想生成此模式更改的diff,它可以使用git-apply应用到另一台机器上。我使用的是:
git diff --no-color --no-ext-diff --binary --cached 560d4ad7ca02fe3cb2403da89fadae0c27fbbe73这对于非二进制模式的更改很有效,甚至对于二进制模式的更改,只要二进制文件本身也发生了更改。但是如果只改变了二进制文件的模式,那么上面的diff就是空的。
如果我使用以下命令,我可以从git diff获得输出:
git diff --no-color --no-ext-diff --binary --cached --raw 560d4ad7ca02fe3cb2403da89fadae0c27fbbe73不幸的是,上述命令的输出不能输入到git apply中:
:100644 100755 e944703... e944703... M asbserver有什么想法吗?这对我来说似乎很奇怪,如果二进制文件的内容既有更改又有模式更改,那么diff会起作用吗?
发布于 2012-01-05 03:48:51
$ chmod +x foo
$ git diff
diff --git a/foo b/foo
old mode 100644
new mode 100755我得到了一个看起来很有用的diff。也许你的问题更多的是在应用方面。你如何应用你的补丁?你在使用--apply switch吗?(在某些情况下可能需要它,这取决于您的完整命令)。
编辑下面的注释:用我得到的二进制文件:
$ chmod +x favicon.ico
$ git diff
diff --git a/assets/favicon.ico b/assets/favicon.ico
old mode 100644
new mode 100755而favicon.ico被正确地猜测为二进制:
$ git show f948cbeb33532d0803a9c | grep favicon
diff --git a/assets/favicon.ico b/assets/favicon.ico
Binary files /dev/null and b/assets/favicon.ico differhttps://stackoverflow.com/questions/8732584
复制相似问题