Git,修复文件名和路径,编码

问题描述 投票:0回答:1

我将hg-repository迁移到git-repository。我有问题。你能帮助我吗。

git存储库中的文件名(和路径)问题(在git扩展名中)。这些名字是西里尔文(胜利1251)。你能建议,我该如何修复git-repository?

下一个截图:enter image description here

git
1个回答
0
投票

Git本身在很大程度上与编码无关。但是,如果您坚持使用UTF-8编码,Git会更有用,因为如果您没有另外指定,那么这是假设的默认值,并且UTF-8编码避免了许多陷阱(尽管不是全部)。与Git生态系统一起工作的大多数环境(工具集等)更喜欢UTF-8编码。

如果你确实指定了编码(通过将LANG设置为,例如,ru_RU.CP1251),一些工具将理解数据是在CP1251中编码的 - 但是他们也会认为你的终端正在使用CP1251,而情况可能并非如此。要解决这个问题,你可以使用luit,如How do I view cp1251 text file in UTF-8 console?的答案中所述。

Mercurial处理文件名编码的方法是described in the Mercurial Wiki。在快速导出/快速导入转换期间转换为UTF-8是可能的,但有点棘手。您是否想要转换文件内容也取决于您(导出/导入交换是执行此操作的理想时间,但显然这需要仔细检测实际内容编码)。

(在重建整个转换后的存储库时,你也可以使用git filter-branch重新编码所有文件名,但是如果你还没有走得太远,那么重做从Hg到Git的转换可能会更好。)


1也就是说,Git试图通过简单地存储快照来解释文件名或文件内容本身。但是这在许多边缘和角落的情况下都会崩溃。

© www.soinside.com 2019 - 2024. All rights reserved.