美文网首页
git log,git diff命令在powershell, c

git log,git diff命令在powershell, c

作者: 潘帅次元 | 来源:发表于2018-08-01 22:40 被阅读702次

问题纠葛

powershell下,使用git diff, git log 查询到中文提交的代码以及提交记录的时候总能发现乱码问题。
这对于那些用图形化界面的程序员大大们当然是没有任何问题的。
虽然本帅也用idea内嵌的git套件,但是git diff, git log 乱码对于本帅来说还是如鲠在喉,芒刺在背,尤其是在使用这两个命令的时候。
所谓逼死强迫症,趁今天有点闲,遂除掉这道心病。

现象

> git diff --cached
diff --git a/src/main/java/just/fun/heihei.java b/src/main/java/just/fun/heihei.java
new file mode 100644
index 0000000..38411be
--- /dev/null
+++ b/src/main/java/just/fun/heihei.java
@@ -0,0 +1,8 @@
+package just.fun;^M
+^M
+public class heihei {^M
+    public static void main(String[] args) {^M
+        System.out.println("helloWord");^M
+        System.out.println("<E4><B8><AD><E5><8D><AB>");^M
+    }^M
+}^M
>git log -1
commit a0b5b19ee7c883780f72ceb4cddc4fd4121f44c2
Author: shuai.pan <shuai.pan@corp.to8to.com>
Date:   Mon Jun 25 18:22:24 2018 +0800

    <E4><BF><AE><E6><94><B9>idc<E4><B8><9A><E4><B8><BB><E6><96><87><E6><A1><88>

commit ed17bc4511a143c729c1446ca0ef9966ae3ca3ee
Author: shuai.pan <shuai.pan@corp.to8to.com>
Date:   Mon Jun 25 17:50:55 2018 +0800

    add fxxk pacakge

强迫症患者受不了,于是在网上搜寻良久,大部分解决方案是:

git config --global color.ui true
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding gbk|utf-8

执行各种命令,就差使用全部进行组合了(排列没必要),但是问题依然存在(心中一个++飞过)。
再看上述命令,提交的编码是utf-8,日志输出确实gbk,不得法,于是换成如下:
最终解决在环境变量中配置:LESSCHARSET值为utf-8即可。顺带学习了一波git config相关的命令。

git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8

export LESSCHARSET=utf-8 ## linux bash配置环境变量
set LESSCHARSET=utf-8 #windows配置环境变量
powershell git diff
powershell git log
cmder git log, git diff

总结

终于搞定这个问题,治好这强迫症心病,开心得不行。
耗费时间巨大:但是花费了大概3小时,才解决。加上n久以前的时间,那不少于一天了@_@
考虑问题不全面:一直都在考虑git上的传输编码问题,就没考虑过bash上输出是否支持utf-8这总格式。毕竟为啥在别的idea上面可以实现中文,而bash不可以?不就是最后这输出的问题么?

附:
系统 win 7 专业版 64位
cmder 版本 Version 1.3.6.678

相关文章

  • git log,git diff命令在powershell, c

    问题纠葛 在powershell下,使用git diff, git log 查询到中文提交的代码以及提交记录的时候...

  • Git常用命令分享

    Git常用命令 git diff vs git log git pull vs git fetch git reb...

  • powershell中git log的中文问题

    powershell中git log的中文问题 默认情况下,powershell里使用git log输出有中文会有...

  • 常用的git命令和git分支策略

    git diff 命令 git diff 文件:查看尚未缓存的改动 git diff --cached:查看已缓存...

  • Git之"git diff"命令

    本文主要是了解git diff、git diff --cached、git diff HEAD命令的区别。 1.准...

  • git学习总结

    git status:掌握工作时区状态 git diff:查看修改的内容 git log:查看提交历史 git r...

  • Git版本回退

    首先我们通过log命令查看我们的历史记录,在Git中,我们用git log命令查看: $ git log --pr...

  • git command

    git diff HEAD git status 命令git checkout -- readme.txt意思就是...

  • Git 07比较修改内容(diff)

    比较修改内容 ======== 命令 git diff 比较修改内容 git diff --cached 添加到索...

  • git笔记02

    比对分支 git diff HEAD HEAD^git diff HEAD b342771c752f4git di...

网友评论

      本文标题:git log,git diff命令在powershell, c

      本文链接:https://www.haomeiwen.com/subject/trldvftx.html