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