git 学习笔记
1、Git 和 SVN的区别是什么。
三个区别:【存储】、【使用】、【管理】
- 存储:
- Git是对修改的内容,进行key/value的方式进行存储的。
- Svn是对源文件进行存储。
- so:同样用svn 和 git 管理一样的修改,一样的版本,svn仓库会大很多。
- 使用:
- Git提交需要 add commit push , 而Svn只需要 commit。
- 管理:
- Git是分布式,SVN是远程集中式管理。
- Svn提交代码,必须远程Svn仓库开启着,才可以使用,如果没有开,什么都做不了。而Git客户端就会有一个本地仓库,可以进行提交,对比,切换分支,连接远程,可以推送。
2、Git的底层原理
- Git是对修改记录进行 key/value的保存,所以我们要回退到什么时候的版本,或者回退哪一次的修改,可以快速的通过gitKey的方式,快速的 切换版本。
- 这个做法,很好的解决了记录切换的问题以及效率,那么他是如何做到找到文件夹呢?
- git是通过树图来管理文件的
- Git对于文件文件管理,是采用树模型进行建立的,每一个分支,又有一棵树,这里有4个属性,tree,blob,commit,tag。
- blob ,表示文件节点,git add 时候创建的
- tree ,表示树节点,git commit时候创建的,还有他下面的字节点,分别用blob 和 tree 表示。
- commit,会带上tree的id,所以可以快速的知道,获取哪个树的信息。
3、Git的通信协议
支持四种:【local】,【ssh】,【http】,【git】
- local: 本地文件传输模式,小打小闹可以。
- ssh: 安全性高了,但是不适合做一些管理。
- http :git本身不支持http,需要借助apche,nginx等web服务器,做转发。
- git : 是git 自己本身的服务
4、一些资料:
官方客户端: httpsd://git-scm.com/downloads
其它客户端:https://tortoisegit.org/download/
彻底理解git:https://github.com/pysnow530/git-from-the-inside-out/blob/master/README.md