首页 > 代码库 > 《Git小书》笔记:1 前言

《Git小书》笔记:1 前言

??

图灵社区买了本《Git小书》,以前也买了一本《GitHub入门与实践》,看完了,觉得挺好,可是现在几乎都忘了,怎么感觉杀鸡用牛刀的赶脚,我完全用不上那些功能啊,可能是没有因为没有经历团伙作案的项目吧,git几乎成了文件备份工具了,自然而然地几乎只用到了推送功能。而那些复杂的命令虽然练了不少,但终究因为缺少累积理解也都忘了。

Git推送代码,因为都是代码练习片段,没有形成库的形式,加上推送的时候总是纠结commit的写法,所以也渐渐不用了。

最近对C语言有了点感觉,感觉如果用git管理看书时写的代码会比较有帮助,二来因为在虚拟机上写代码所以不免出现崩溃的情况也算有个备份,三来不久工作了也会要用到。正好上次看到这本《Git小书》篇幅不大,不喜欢看视频学,所以这个合适。

下面是对本书的前言的笔记:

看的出来作者也对Git学习很纠结啊,有着各种奇怪的想法,自己也有过,不过作者钻研精神比我强多了,没有放弃,而是发现了更多。

  1. 理解实现才能学好Git吗?以前我也觉得如果明白Git的实现原理才能真正学好Git,没想到早有人有这种想法了。因为这种想法,倒是耽误了我不少学习时间,整天想着怎么实现,虽然实现并不是难上天,但是对于一个用都不会用的人,也就是无法理解需求的人,反过来去研究实现,就有点纠结了。所以当时浪费了一些时间在这上面,在网上乱搜,啥都没学到。所以,不建议这么干。
  2. 分支的作用:我觉得分支的最大作用,就是可以做实验,提供了一种不复制当前文件就能做实验的方法,虽然实现起来有些复制,但是值得实验。
  3. "为了管理提交的颗粒度,它引入了暂存区(stage)。"之前也好奇为什么弄个暂存区出来,一直没想明白,这里提到了是为了管理提交颗粒度,我目前理解就是颗粒度就是做事步骤的数量,就好比走路,总是一步一步的,如果你要跨三步的距离,那么必然要经历第二步。
  4. "为了能够分布,它的提交标示符无法采用简单数字,而是采用了一个看起来令人困惑的字符串(SHA1)。"当时也奇怪为什么搞这么奇怪的标识符,没想明白,这里说是为了能够分布,可能是为了避免重复和校验吧。

    为什么修订标识符叫SHA1,因为是Git用SHA1算法生成的。

  5. 感觉命令学起来好复杂啊:
    1. "有些命令引入的功能太多。看看git reset子命令即可了解我的意思。"

      我也是这样觉得的,很大程度上把人搞晕了,但是不要因为这个而放弃。可以把这个看做一种"设计上的缺陷",而不是看做自己的无能,然后想办法解决这个问题;

    2. "概念命名随意。比如暂存区有多个名字,包括Index,Stage,Cache。"当时我也被搞糊涂了,有的资料上也是一会冒个名字出来。所以以后学习其他技术,如果出现了了多个让你迷惑的概念,最好搞清楚是不是同一个概念,不要纠结;
    3. "参数设计随意。例如git branch -b等价于git branch后跟git checkout 。"我一直纠结是用简写还是用全写,真的没必要,想到什么用什么吧;
  6. "充分利用分布特性来减少依赖,使用分支特性随心创造而无后顾之忧。"比如不依赖于特定的虚拟机平台,因为你不保存生成文件嘛,你只保存源文件。

    利用分支特性,其实我们平时有太多的试错要做了,有了分支特性就可以避免因为怕麻烦而裹足不前,现在要做的就是熟练使用分支就可以了。

《Git小书》笔记:1 前言