git CLI 设计太烂
資深大佬 : AndyAO 31
自己用 git 之后,感到由于知识不系统,很多问题都解决不了,就照着《 Git 权威指南》学完。
回想起自己没这么干之前,最大的误解就是认为 git 是 linus 的伟大作品设计是很好的,但是仅从命令行的设计来看,这个东西是极烂的。
如果你上手之后发现总是很难用,有时候很让人困惑,那么不要感到很自卑,本来就很难用,本来就很复杂。
StackOverFlow 上排名前 5 的问题中有 3 个和 Git 有关,这说明大多数工程师在使用中经常会感到困惑。
如果你感觉很简单,那么要不就是「专家谬误」,要不就是你天赋异禀,异于常人。
具体来讲,最容易被看到的设计硬伤是:
- 单个命令的功能太多
- 例如,
git reset
子命令,功能是名不副实的
- 例如,
- 概念命名随意
- 例如,「暂存区」有多个名字,包括
index
,stage
和cache
- 例如,「暂存区」有多个名字,包括
- 参数设计随意
- 例如,
git brach -b
等价于git branch
后跟git checkout
- 例如,
实际上,工具越出名,越底层,改进的空间越小。
像编程语言这种东西,基本上就是没有后期修改的,稍微动动就是鬼哭狼嚎的。
例如,Java 字节码自从诞生之后就基本上没改过,连向后兼容的更改都没有。
git 这些 cli 不是精心设计的,被精心设计的只是核心原理,cli 的各种功能是堆出来的,可以说基本上就没有什么设计可言,这个鬼样子也是可以理解的。
等到感到不改不行的时候,往往就已经晚了。
大佬有話說 (80)