首页 > 解决方案 > 如何使 git-show 导出文件为 UTF-8

问题描述

我想查看文件的旧版本,所以我跑了

git show <commit-sha>:example.less > temp.less

将旧版本导出为temp.less. 但是导出的文件最终具有 UTF-16 编码(甚至认为example.less是 UTF-8 编码)。

我试过了--encoding=utf-8--encoding=utf8但都没有奏效。此外,如果可能的话,我想在我的 gitconfig 中设置它,而不是每次都输入它。


Windows 10
Git 2.15.0.windows.1

标签: gitcharacter-encodinggit-config

解决方案


这似乎是 Windows PowerShell 中的一个问题,只需使用 CMD 终端即可解决。

我使用 git 版本 2.27.0.windows.1 复制了 Windows 10 中的行为。在 PowerShell 中,我不断获取以 UTF-16 编码的文件,甚至尝试更改代码页(使用chcp 65001)或使用--endoding=utf-8.

通过简单地切换到 CMD,以下类型的命令可以工作并生成 UTF-8 文件:

git cat-file blob HEAD:test.txt > retrieved.txt
git show HEAD:test.txt > retrieved.txt

虽然这并不能解决 PowerShell 中的问题,但至少它将问题缩小到 PowerShell。


推荐阅读