Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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
git文件名中的冒号。Windows开发者警报?_Git_Filenames - Fatal编程技术网

git文件名中的冒号。Windows开发者警报?

git文件名中的冒号。Windows开发者警报?,git,filenames,Git,Filenames,昨天,一位同事在他的笔记本电脑上运行Linux,他向我们的主机推送了一组文件,文件名中有冒号: 这是Unix世界中的一个合法文件名,但其他运行Windows的用户无法再提取。Eclipse取消拉取,因为文件名有效。来自console的Git提取了存储库,但由于这些文件的文件名非法,所以没有分配这些文件,因此我最终得到了一个缺少文件的工作副本 在回答“切换到Linux”或“Linux优于…”之前,请理解这确实是一个错误,因为我们的软件通常部署在Windows和Linux服务器上,因此在war包中包

昨天,一位同事在他的笔记本电脑上运行Linux,他向我们的主机推送了一组文件,文件名中有冒号

这是Unix世界中的一个合法文件名,但其他运行Windows的用户无法再提取。Eclipse取消拉取,因为文件名有效。来自console的Git提取了存储库,但由于这些文件的文件名非法,所以没有分配这些文件,因此我最终得到了一个缺少文件的工作副本

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

以下是我的问题:

  • 在Git中是否可以限制文件命名?例如,当两个大小写不同的文件共存或一个文件在其大小写中重命名时(例如,
    Myclass.cs
    Myclass.cs
    ),SVN会警告提交者。我希望在文件中强制使用Windows样式名称,因为Windows比Unix严格限制。我不知道任何合法的文件名在Unix世界是非法的
  • 在历史上保留这样的承诺是否危险?我已经成功地要求提交人恢复他的更改,在有罪的提交之前将我的工作副本重置为一些修订,然后撤销。但是,使用Windows的人永远都无法获取该修订版(这不是问题),或者可能在分支中以交互方式重新设置其基础
是的,我理解让他直接推给师父是一个错误,因为我们可以很容易地隔离和抹去树枝上的变化

因为我们有一堆活跃的分支在主节点后面,需要在PR之前进行合并,并且需要进行合并,所以我想知道是否可以将主节点重新设置为自身,强制推送并让所有开发人员学习他们的经验教训

最后,我们使用在Linux主机上运行的
Bitbucket服务器
,可以使用拉请求执行合并

您可以安装一些(执行适当的检查),特别是一个钩子(至少对于Linux用户)或预推钩子


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

我很快就会着手这方面的工作,尤其是如果我能够轻松开发一个预推检查来安装在Bitbucket上(预提交很好,预推也更安全)。在最坏的情况下,预推钩子将迫使开发人员重新确定其历史。