冒号在git文件名中. Windows开发者报警?

昨天,在他的笔记本电脑上运行
Linux的同事向我们的主人推​​送了一组带有冒号的文件:名字.

这是Unix世界中合法的文件名,但运行Windows的其他人不能再使用了. Eclipse取消了pull,因为文件名有效.来自控制台的Git会拉出存储库,但由于它们的文件名非法,因此不会分配这些文件,因此我最终得到了一个缺少文件的工作副本.

在回答“切换到Linux”或“Linux比…更好”之前,请理解这确实是一个错误,因为我们的软件通常部署到Windows和Linux服务器上,因此在war包中包含一个非法命名的文件在崩溃中.

这是我的问题:

> Git是否可以限制文件命名?例如,当具有不同外壳的两个文件共存或者在其外壳中重命名文件时(例如,Myclass.cs到MyClass.cs),SVN会警告提交者.我想在文件中强制使用Windows风格的名称,因为Windows严格来说比Unix更具限制性.我不知道在Unix世界中任何合法的文件名都是非法的
>在历史上保持这样的承诺是危险的吗?我已经成功地要求提交者恢复他的更改,在那个有罪的提交之前将我的工作副本重置为一些修改,然后撤回.然而,没有人使用Windows将能够拉动该修订版(不是问题)或者可能在分支中交互式地修改它

是的,我理解让他直接推向掌握是错误的,因为如果它在分支中,我们可以很容易地隔离和消除变化.

由于我们有一堆活动分支在主服务器之后,需要在PR之前进行合并对齐,并且需要合并,我想知道将主服务器重新绑定到自身是否是一个好主意,强制推送和让所有开发人员都吸取教训.

最后,我们使用在Linux主机上运行的Bitbucket Server,并可以使用pull请求执行合并

最佳答案 您可以安装一些
git hooks(进行适当的检查),特别是
git precommit钩子(至少对Linux用户来说),或者是一个预刷钩子.

当然,这需要一些合作(并说服人们使用它).

点赞