?
?
在图灵社区买了本《Git小书》,以前也买了一本《GitHub入门与实践》,看完了,觉得挺好,可是现在几乎都忘了,怎么感觉杀鸡用牛刀的赶脚,我完全用不上那些功能啊,可能是没有因为没有经历团伙作案的项目吧,git几乎成了文件备份工具了,自然而然地几乎只用到了推送功能。而那些复杂的命令虽然练了不少,但终究因为缺少累积理解也都忘了。
Git推送代码,因为都是代码练习片段,没有形成库的形式,加上推送的时候总是纠结commit的写法,所以也渐渐不用了。
最近对C语言有了点感觉,感觉如果用git管理看书时写的代码会比较有帮助,二来因为在虚拟机上写代码所以不免出现崩溃的情况也算有个备份,三来不久工作了也会要用到。正好上次看到这本《Git小书》篇幅不大,不喜欢看视频学,所以这个合适。
下面是对本书的前言的笔记:
看的出来作者也对Git学习很纠结啊,有着各种奇怪的想法,自己也有过,不过作者钻研精神比我强多了,没有放弃,而是发现了更多。
- 理解实现才能学好Git吗?以前我也觉得如果明白Git的实现原理才能真正学好Git,没想到早有人有这种想法了。因为这种想法,倒是耽误了我不少学习时间,整天想着怎么实现,虽然实现并不是难上天,但是对于一个用都不会用的人,也就是无法理解需求的人,反过来去研究实现,就有点纠结了。所以当时浪费了一些时间在这上面,在网上乱搜,啥都没学到。所以,不建议这么干。
- 分支的作用:我觉得分支的最大作用,就是可以做实验,提供了一种不复制当前文件就能做实验的方法,虽然实现起来有些复制,但是值得实验。
- "为了管理提交的颗粒度,它引入了暂存区(stage)。"之前也好奇为什么弄个暂存区出来,一直没想明白,这里提到了是为了管理提交颗粒度,我目前理解就是颗粒度就是做事步骤的数量,就好比走路,总是一步一步的,如果你要跨三步的距离,那么必然要经历第二步。
- "为了能够分布,它的提交标示符无法采用简单数字,而是采用了一个看起来令人困惑的字符串(SHA1)。"当时也奇怪为什么搞这么奇怪的标识符,没想明白,这里说是为了能够分布,可能是为了避免重复和校验吧。
为什么修订标识符叫SHA1,因为是Git用SHA1算法生成的。
- 感觉命令学起来好复杂啊:
- "有些命令引入的功能太多。看看git reset子命令即可了解我的意思。"
我也是这样觉得的,很大程度上把人搞晕了,但是不要因为这个而放弃。可以把这个看做一种"设计上的缺陷",而不是看做自己的无能,然后想办法解决这个问题;
- "概念命名随意。比如暂存区有多个名字,包括Index,Stage,Cache。"当时我也被搞糊涂了,有的资料上也是一会冒个名字出来。所以以后学习其他技术,如果出现了了多个让你迷惑的概念,最好搞清楚是不是同一个概念,不要纠结;
- "参数设计随意。例如git branch -b等价于git branch后跟git checkout 。"我一直纠结是用简写还是用全写,真的没必要,想到什么用什么吧;
- "有些命令引入的功能太多。看看git reset子命令即可了解我的意思。"
- "充分利用分布特性来减少依赖,使用分支特性随心创造而无后顾之忧。"比如不依赖于特定的虚拟机平台,因为你不保存生成文件嘛,你只保存源文件。
利用分支特性,其实我们平时有太多的试错要做了,有了分支特性就可以避免因为怕麻烦而裹足不前,现在要做的就是熟练使用分支就可以了。
时间: 2024-10-06 22:44:03