相关文章推荐
内向的树叶  ·  AttributeError: ...·  1 年前    · 
任性的小马驹  ·  .net core web api ...·  1 年前    · 
近视的墨镜  ·  tableauhyperapi.sqltyp ...·  1 年前    · 

首先说明的是,这种情况的确是小概率事件
然后呢,原因也是很简单,但是如果单独从问题现象出发的确需要花时间debug
当然,问题也不是无缘无故就出现的,我前几天在整理sourcetree的使用培训文档,然后进行了很多的“骚操作”,目的是为了培训时的演示效果

究竟是怎样的情况呢,现象图片如下:
  • 我首先担心的是,难道「历史记录」被全部删除了?我赶紧去git服务器上面看了「commit」,发现「历史记录」都还在,那我就放心了。
    2.在背景部分我说过了,我最近做了好些乱七乱八的操作,所以,既然没有影响到服务器上的仓库,那我估计是本地出问题了。
    3.我在百度上搜索了一下,的确还有人跟我情况一样,说是sourcetree的bug[ https://blog.csdn.net/guoqi_666/article/details/119650090 ],然后我就进行了「重启sourcetree」、「重启电脑」、「关机-开机」,然而并没有解决问题。
    4.然后我在想,难道是sourcetree版本引发了某些bug,于是我从sourcetree官网上下载了最新版本,然而还是一样没有解决问题。
    5.难道是电脑中关于git的存储信息出现问题了?我下载了另外一个git的gui软件「Tower」,然后用Tower软件能显示出「历史提交视图」
    6.然后我直接使用 git log,是能够打印出历史提交信息的
    7.然后我试着「彻底删除sourcetree」,于是按照[ https://qa.1r1g.com/sf/ask/1691411641/ ]中的内容将sourcetree相关的配置文件全部删除掉,内容如下:
  • 您可以看到在擦除SourceTree首选项中描述的过程是否有帮助 - 但要小心:
    请注意,擦除首选项意味着您将丢失书签和查看设置.
    如果擦除您的偏好不是导致问题的原因,请备份这些.
    确保SourceTree已关闭
    在删除文件之前,请确保在以下文件夹中备份文件
    删除文件" bookmarks.xml"," opentabs.xml"," userhosts"inC:\Users\<username>\AppData\Local\Atlassian\SourceTree\
    删除文件 C:\Users\<username>\AppData\Local\Atlassian\SourceTree.exe<random_string>\<version_number>\user.config
    再次打开SourceTree以测试它是否有效.
    确保SourceTree已关闭.
    在删除文件之前,请确保在以下文件夹中备份文件
    删除所有内容 ~/Library/Application Support/SourceTree/
    删除~/Library/Preferences/com.torusknot.SourceTreeNotMAS.plist(你应该使用SourceTree的直接版本,因此"NotMAS")
    如果您正在使用Mavericks或更高版本,请注销并重新登录.当您登录时,Mavericks会缓存所有首选项,删除文件实际上不会再清除设置.
    再次打开SourceTree以测试它是否有效.
    如果这不能解决您的问题,请关闭SourceTree并恢复文件,然后再次重新打开SourceTree(如果可能的话).
    

    然而还是没有作用
    8.然后我想到的是,难道git已经被“污染”搞乱了?我最开始想到的是删除git然后重新安装,然后一了解发现,苹果电脑带的git是xcode自带的,也就是安装xcode时安装的git,我一想那就先不用删除了,先看看git中是不是配置出问题了,然后使用 git config --list 查看git中的配置信息,我一下就发现了问题:里面有一项是:il8n.logoutputencoding=GB18030 我一看我突然想起来了,前几天我为了展示“乱码”问题,改成了GB18030,然后就没改回去了。我想到的是如果出现乱码了,我肯定会知道去配置编码方式,但是竟然没想到的是,竟然会导致sourcetree上的「历史提交视图」直接不显示了。

    在命令行中输入:

    git config --global il8n.logoutputencoding utf-8
    

    或者是把这个配置删除掉,使用默认的

    git config --global --unset il8n.logoutputencoding
    

    也奇怪,如果使用il8n.logoutputencoding=GB18030就会出现「历史提交视图」为空的现象,如果随便乱写il8n.logoutputencoding=gbk123,都不会出现问题,然后呢如果配置成gbk,的确会乱码,那应该git默认是使用utf-8的,所以把该配置删除也是正常的。
    有兴趣的,可以在命令行中输入:

    git config --global il8n.logoutputencoding GB18030
    

    然后重启sourcetree,应该能复现我所遇到的「问题现象」。挺有意思的~

    相关文章;
    https://git-scm.com/book/zh/v2/起步-安装-Git
    https://www.cnblogs.com/yanzige/p/9810333.html
    https://git-scm.com/book/zh/v2/起步-初次运行-Git-前的配置
    https://blog.csdn.net/qq_27258799/article/details/78977764
    https://www.cnblogs.com/billhsu2009/p/8934302.html
    https://blog.csdn.net/iteye_17224/article/details/82583609
    https://www.sourcetreeapp.com/
    https://blog.csdn.net/guoqi_666/article/details/119650090