Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Git在克隆时更改二进制文件_Windows_Git_Github - Fatal编程技术网

Windows Git在克隆时更改二进制文件

Windows Git在克隆时更改二进制文件,windows,git,github,Windows,Git,Github,我刚刚开始使用git,在尝试从github克隆respository时遇到了一个问题。repo中包含多个二进制文件(.exe和.dll);当我在本地机器上克隆这些二进制文件时,没有一个是有效的(就windows而言)。尝试执行它们会导致显示以下消息: “XXX不是有效的Win32应用程序” 我相信我已经正确地设置了一切(如果相关的话,使用GitExtensions),但是我似乎无法解决这个问题 非常感谢任何帮助 编辑: 这是我当前的.gitconfig-如果相关: [merge] too

我刚刚开始使用git,在尝试从github克隆respository时遇到了一个问题。repo中包含多个二进制文件(.exe和.dll);当我在本地机器上克隆这些二进制文件时,没有一个是有效的(就windows而言)。尝试执行它们会导致显示以下消息:

“XXX不是有效的Win32应用程序”

我相信我已经正确地设置了一切(如果相关的话,使用GitExtensions),但是我似乎无法解决这个问题

非常感谢任何帮助

编辑:

这是我当前的.gitconfig-如果相关:

[merge]
    tool = kdiff3
[mergetool "kdiff3"]
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe
[diff]
    guitool = kdiff3
[difftool "kdiff3"]
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe
[core]
    editor = \"C:/Program Files (x86)/GitExtensions/GitExtensions.exe\" fileeditor
    autocrlf = true

您可能已经违反了行尾修复-并且它没有将文件视为二进制文件:

例如,如果您想要所有*.foo 要作为二进制文件处理的文件 你可以把这条线放进去 .git属性:

这将意味着所有扩展名为.foo的文件 将不会有回车/换行 feed翻译完成,不会被删除 差异和合并将导致 保留原始文件时发生冲突 原封不动

资料来源: 关于行尾:


关于二进制文件:。

您可能与行尾修复程序有冲突,而且它没有将文件视为二进制文件:

例如,如果您想要所有*.foo 要作为二进制文件处理的文件 你可以把这条线放进去 .git属性:

这将意味着所有扩展名为.foo的文件 将不会有回车/换行 feed翻译完成,不会被删除 差异和合并将导致 保留原始文件时发生冲突 原封不动

资料来源: 关于行尾:


关于二进制文件:。

您可以先检查文件的大小是否相同checksums@CharlesB:我可以看出git确实在用二进制文件做一些事情;由于它们的大小不同于从repo手动下载的文件(例如,从github下载master的zip文件),您可以首先检查文件的大小是否相同或不同checksums@CharlesB:我可以看出git确实在用二进制文件做一些事情;由于它们的大小不同于从repo手动下载的(例如,从github下载master的zip文件),因此,我确实读了那篇最初的文章,并认为我已经按照说明进行了操作;如果有帮助的话,我已经更新了我的问题,将我的.gitconfig包括在内。@DanP:你还没有真正解决Danny的建议-git可能会将你的二进制文件检测为文本文件,并应用autocrlf转换。尝试按所述设置git属性,看看是否可以防止损坏。我已尝试将*.ddl和*.exe文件添加到我的用户目录中的.gittributes文件中,但仍然遇到相同的问题。我应该注意到,repo本身具有不同设置的这些文件-这是否覆盖了我的全局配置?结果证明问题出在repo端;但如果不是这样的话,这将是正确的答案-谢谢!感谢这一点,我确实读了第一篇文章,并认为我遵循了方向;如果有帮助的话,我已经更新了我的问题,将我的.gitconfig包括在内。@DanP:你还没有真正解决Danny的建议-git可能会将你的二进制文件检测为文本文件,并应用autocrlf转换。尝试按所述设置git属性,看看是否可以防止损坏。我已尝试将*.ddl和*.exe文件添加到我的用户目录中的.gittributes文件中,但仍然遇到相同的问题。我应该注意到,repo本身具有不同设置的这些文件-这是否覆盖了我的全局配置?结果证明问题出在repo端;但如果不是这样的话,这将是正确的答案-谢谢!
*.foo -crlf -diff -merge