git是由linux发布的。
开源协议:基于它的类库和包,它是开源的,如果你用到我的包,或者用到我的类库,你也必须是开源的。
git功能:版本控制。
git和svn的区别
1、svn是集中式的版本控制,git是分布式的版本控制;
2、svn每次存储的是变化,git如果有变化,存储的是完整的文件;如果没有变化,它会是有指针的,指向前一个snapshot的。
Centralized Version Control Systems (CVCSs)
Distributed Version Control Systems (DVCSs)
SVN存在的问题:
控制版本的时候,svn只去存储变化的部分。
a) push/pull 要联网
b) 如果server硬盘坏了 怎么办?
c) git 保证完整性
git:
如果版本变化了的话,如果version1中的A变化了,version2存储的是变化之后的版本A1;而version1中的B没有变化,version2存储的是没有变化B的引用(如果没有变化是不会去copy的)。
去中心化(分布式账本)
安装
a) git config --global user.name 'xx'
b) git config --global user.email 'xx'
c) ssh-keygen -t rsa -C 'james@gudu.com'
HEAD:指的是本地当前分支