我在 Windows 下同时使用了 Git GUI 和 Git Bash,一开始在 Git Bash 中进行 git commit -m "中文注释"之后,git log 时总是出现乱码。使用 Git GUI 提交之后,在 Git Bash 中查看也是乱码,自己也知道肯定是编码不统一的问题,但是在网上搜索了很久,也按照前辈们所说进行了设置,始终无法解决该问题,倒腾了很久,终于在不经意间发现了端倪。
感慨: 具体问题具体分析, 不要一味的照搬前辈解决之道!
前辈解决过程如下:
1 设置 git gui 的界面编码
git config --global gui.encoding utf-8
2 设置 commit log 提交时使用 utf-8 编码,可避免服务器上乱码,同时与 linux 上的提交保持一致!
git config --global i18n.commitencoding utf-8
3 使得在 $ git log 时将 utf-8 编码转换成 gbk 编码,解决 Msys bash 中 git log 乱码。
git config --global i18n.logoutputencoding gbk
4 使得 git log 可以正常显示中文(配合 i18n.logoutputencoding = gbk),在 /etc/profile 中添加:
export LESSCHARSET=utf-8
我的解决过程:
git config --global gui.encoding utf-8
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8
export LESSCHARSET=utf-8
加粗部分是我修改的部分,这样设置之后,就正常了。也感觉这样设置才是正确的,提交的编码是 utf-8,log 输出编码也应该是utf-8才行。不过我在另外一胎电脑上使用,没有进行任何设置却没有乱码,在本人的电脑上才出现了乱码问题.。具体原因也不是太清楚,记录下来本次解决之道,以防日后再次出现,也好有解决的办法。
饮水不忘挖井人:
1. 学习 Git 非常不错的 Blog
- Git 教程 - 廖雪峰
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 - Git reset 的使用
http://blog.csdn.net/hudashi/article/details/7664464 - Git 分支详细介绍
http://www.ruanyifeng.com/blog/2012/07/git.html - Git merge 完全解析
https://blog.csdn.net/T3/article/details/77069523 - 一个成功的 Git 分支模型
https://www.jianshu.com/p/b357df6794e3
关于 fast forward
当前分支合并到另一分支时,如果没有分歧解决,就会直接移动文件指针。这个过程叫做 fast forward。
例如,开发一直在 master 分支进行,但忽然有一个新的想法,于是新建了一个 develop 的分支,并在其上进行一系列提交,完成时,回到 master 分支,此时,master 分支在创建 develop 分支之后并未产生任何新的 commit。此时的合并就叫 fast forward - 工作流一目了然,看小姐姐用动图展示10大Git命令
2. Git 界面GUI和命令行 Command 两种操作方式
- http://www.linuxidc.com/Linux/2014-09/107298.htm
- http://www.runoob.com/w3cnote/git-gui-window.html
3. Git Bash 中文乱码问题
- http://zengrong.net/post/1249.htm
- https://segmentfault.com/a/1190000000578037
4. Git 远程服务器代码托管
- https://github.com/ (
免费的代码托管是公开的现已免费代码托管可以设置私有) - http://www.cnblogs.com/wintersun/p/3930900.html (gitLab 免费的代码托管可设置私有)
- 自己建立服务器
在此,谢谢提供我帮助的前辈们!