一、Git简介和与SVN的简单对比
1. 什么是git?
git是一款开源的分布式版本控制工具
在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的
git的起源
作者是Linux之父:Linus Benedict Torvalds
当初开发git仅仅是为了辅助Linux内核的开发(管理源代码)
git的现状
在国外已经非常普及,国内慢慢普及
越来越多的开源项目已经转移到git
2. 其他的版本控制工具
CVS
最早的开源、免费的集中式版本控制工具
自身设计有问题,会造成提交文件不完整,版本库莫名损坏的情况
SVN
修正了CVS的一些稳定性问题,是目前使用最多的集中式版本库控制器工具
ClearCase
收费的集中式版本控制工具,安装大,运行慢
VSS
微软的集中式版本控制工具,集成在Visual Studio中
1.集中式
ComputerA想要服务器最新的代码直接通过checkout向服务器下载
ComputerA在本地修改代码后,直接提交到服务器
ComputerB想要服务器最新的代码直接通过checkout向服务器下载
ComputerB在本地修改代码后,直接提交到服务器
所有的内容统一交给服务器来进行管理

服务器本地有个代码仓库,从服务器更新代码,上传代码
ComputerA想要服务器最新的代码由本地代码仓库将服务器的代码下载下来,再通过本地代码仓库的项目下载到ComputerA
ComputerA在本地修改完代码后先提交到本地的代码仓库,再由本地的代码仓库提交到服务器
ComputerB操作与ComputerA相似
代码的提交与更新首先会通过本地代码仓库,本地代码仓库再通过服务器,并不是直接交给服务器来进行管理
3.
Git和SVN的简单对比
分布式:
git的工作流程
上图以类区分总共有两类角色,一类共享版本库(可以称之为服务器),一类是开发人员
开发人员A想要共享版本库的代码,通过clone命令向服务器下载,将服务器完整的代码下载到本地版本库中,之后本地版本库将代码自动下载到本地
开发人员A在本地修改后,提交代码,通过commit命令先提交到本地版本库,之后通过push命令将本地版本库的代码提交到共享版本库
开发人员B想要共享版本库的代码,通过clone命令向服务器下载,将服务器完整的代码下载到本地版本库中,之后本地版本库将代码自动下载到本地
开发人员B在本地修改后,提交代码,通过commit命令先提交到本地版本库,之后通过push命令将本地版本库的代码提交到共享版本库
开发人员A想要服务器最新的代码,通过pull命令现将服务器最新的代码更新到本地版本库,之后本地版本库将代码自动更新到本地
4. Git的工作原理
git commit -m "modify main.m" 将暂缓区中的main.m 提交到分支(本地版本库)
分支(master):git自动创建的第一个分支. git push origin master 将本地版本库的main.m 推送到服务器(共享版本库)
HEAD指针:用于指向当前分支
git add和git commit的原理
git add :把文件修改或者新添加的文件添加到暂存区
git commit :把暂存区的所有内容提交到本地版本库(分支)
git push : 把本地版本库中的内容添加到服务器(共享版本库)