git获取更改德国umlauts

git获取更改德国umlauts,git,encoding,utf-8,git-fetch,Git,Encoding,Utf 8,Git Fetch,我有多个git存储库,它们都是utf-8编码的,并且正确显示UMLAUT。我希望将它们合并成一个单一的回购协议(每个原始回购协议都是新回购协议中的一个分支)。我的系统配置为使用utf-8作为默认git编码。 我执行以下步骤: git init test (initializes as utf-8) cd test git remote add test_remote C:/temp/remote_repo git fetch --all git checkout -b test_local te

我有多个git存储库,它们都是utf-8编码的,并且正确显示UMLAUT。我希望将它们合并成一个单一的回购协议(每个原始回购协议都是新回购协议中的一个分支)。我的系统配置为使用utf-8作为默认git编码。 我执行以下步骤:

git init test (initializes as utf-8)
cd test
git remote add test_remote C:/temp/remote_repo
git fetch --all
git checkout -b test_local test_remote/master
之后,我在本地分支测试_local中将远程分支主机与所有提交一起使用。我的问题是,德国的umlauts没有正确显示,但git log给出了类似于üforü的值

我的问题是,为什么git要获取更改编码,为什么它不能正确地显示在新的repo中,因为它也是utf-8

我附上了一个示例,说明如何在提交哈希保持不变的情况下获取远程repo和提交消息的更改:

起初,我试图通过执行
chcp 65001
来更改windows命令行的代码页。由于这不起作用,我尝试为不支持unicode到utf-8的程序设置操作系统语言,但也不起作用


经过长时间的搜索,我发现问题出在源代码库中,
git config--list
显示,
i18n.commitencoding
设置为某个windows编码。切换到utf-8后,一切都变得完美了。

Git通常根本不涉及任何数据:它只是原始字节字符串。任何编码解释都取决于其他软件,例如查看提取文件的编辑器或查看提交的寻呼机。不过,也有一些令人讨厌的情况,一些操作系统坚持要弄乱路径名。因此,指定您的操作系统以及字符的精确显示位置非常重要:在提交元数据(如日志消息)、文件元数据(如文件名)或存储在存储库中的文件数据中。我使用windows 10,不使用编辑器,只使用git命令行。错误编码只出现在提交消息中,就我所见,所有其他数据和元数据都很好。如果我在原始repo中使用git show,它会正确地显示umlauts,如果我在获取的repo中使用相同的命令,它会有一些神秘的符号。我不使用Windows,所以我真的帮不上忙,但肯定是Windows不理解的某些设置。提交消息中的原始数据实际上是无法更改的:这将更改提交哈希,使其不再是相同的提交。更熟悉Windows 10的人可能会指出问题所在。但是如何切换呢?