git文件名中的冒号。Windows开发者警报?
昨天,一位同事在他的笔记本电脑上运行Linux,他向我们的主机推送了一组文件,文件名中有冒号git文件名中的冒号。Windows开发者警报?,git,filenames,Git,Filenames,昨天,一位同事在他的笔记本电脑上运行Linux,他向我们的主机推送了一组文件,文件名中有冒号: 这是Unix世界中的一个合法文件名,但其他运行Windows的用户无法再提取。Eclipse取消拉取,因为文件名有效。来自console的Git提取了存储库,但由于这些文件的文件名非法,所以没有分配这些文件,因此我最终得到了一个缺少文件的工作副本 在回答“切换到Linux”或“Linux优于…”之前,请理解这确实是一个错误,因为我们的软件通常部署在Windows和Linux服务器上,因此在war包中包
:
这是Unix世界中的一个合法文件名,但其他运行Windows的用户无法再提取。Eclipse取消拉取,因为文件名有效。来自console的Git提取了存储库,但由于这些文件的文件名非法,所以没有分配这些文件,因此我最终得到了一个缺少文件的工作副本
在回答“切换到Linux”或“Linux优于…”之前,请理解这确实是一个错误,因为我们的软件通常部署在Windows和Linux服务器上,因此在war包中包含非法命名的文件将导致崩溃
以下是我的问题:
- 在Git中是否可以限制文件命名?例如,当两个大小写不同的文件共存或一个文件在其大小写中重命名时(例如,
到Myclass.cs
),SVN会警告提交者。我希望在文件中强制使用Windows样式名称,因为Windows比Unix严格限制。我不知道任何合法的文件名在Unix世界是非法的Myclass.cs
- 在历史上保留这样的承诺是否危险?我已经成功地要求提交人恢复他的更改,在有罪的提交之前将我的工作副本重置为一些修订,然后撤销。但是,使用Windows的人永远都无法获取该修订版(这不是问题),或者可能在分支中以交互方式重新设置其基础
Bitbucket服务器
,可以使用拉请求执行合并您可以安装一些(执行适当的检查),特别是一个钩子(至少对于Linux用户)或预推钩子
当然,这需要一些合作(并说服人们使用它) 我很快就会着手这方面的工作,尤其是如果我能够轻松开发一个预推检查来安装在Bitbucket上(预提交很好,预推也更安全)。在最坏的情况下,预推钩子将迫使开发人员重新确定其历史。