看了一篇文章 What makes Git so hard to use? 在吐槽 Git 难用。
看完之后发现是软广,作者是想推荐自己公司的产品 HighFlux。我看了一下,似乎是通过封装和自动化来达到简化操作的目的。
我用 Git 几年了,不敢说熟练掌握,但是绝对可以说足以应付工作中的所有场景。
我逐条分析一下作者的观点:
Git commands are too many, too low-level and hard to understand.
作者认为,Git 有 157 个命令,让人觉得自己永远是初学者。
我的观点:只需要掌握常用的一些命令就够了,不需要了解那些底层命令。
底层命令是为其他的场景创造更多可能性。
但是确实可以改进一下:大部分人只需要关心十个左右的上层命令就行了,所以可以在产品上提供一些区分,比如分成 git-core / git-full。
好像也没啥意义,算了。
Git tracks 4 versions of files, instead of just "my" version and "the team's" version.
Git 管理文件的四种状态:除了本地版本,远程版本之外,还要学习 stash 和 index(staging area)。
我更加不敢苟同了,这应该正是 Git 强大的地方啊。
Stash 你不喜欢不用就是了。
Index 去掉似乎是可以少一个步骤,直接提交到本地仓库,对于非专业的人来说,减少一点点心智消耗。
sequenceDiagram
WorkingDirectory ->> Index(StagingArea) : add
Index(StagingArea) ->> LocalRepo : commit
LocalRepo ->> RemoteRepo : push
WorkingDirectory ->> + StashArea : stash
StashArea ->> - WorkingDirectory : stash pop
Git doesn't let us safely experiment
作者说了三个功能的缺失:
- undo,就是所有操作的一个回退
- dryrun
- 丢失本地更新的操作,比如
git reset --hard
应该加一个确认
好像有点道理,对于非专业的人来说,这样是会友好些。
但是非专业的人是不是一般都用 GUI,这个事情 GUI 来做似乎完全没有问题啊!
我很少用 GUI 来执行什么操作(只使用 gitg 查看历史),所以对 Git GUI 生态不太了解。
这个意思是不是说 Git 缺少一个好用的 GUI?