目录
1 Git代码管理工具作用
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。有如下一些具体的作用:
代码备份:Git 本身就是一个备份工具,每次提交(commit)都会在本地创建一个快照,即使本地文件丢失,也可以从 Git 历史中恢复。
版本控制:Git 可以查看代码的每一次更改,包括谁在什么时间修改了哪些内容,如果发现最新的提交有问题,可以使用 git revert
命令回滚到之前的版本。同时也可以使用 git diff
可以比较不同版本之间的差异。
协同开发:开发者可以在自己的分支上工作,完成后再将更改合并到主分支。当多个开发者更改了同一部分代码时,Git 可以帮助识别和解决合并冲突。
代码审查:开发者可以发起 Pull Request,邀请其他团队成员审查代码,审查者可以直接在代码旁边添加注释,提出修改建议,同时也可以追溯问题代码的编写人和编写时间,确保代码质量。
2 版本控制器的方式
2.1 集中式与分布式版本控制区别
集中式版本控制工具(CVCS):所有的版本历史记录都存储在一个中央服务器上,开发者需要连接到中央服务器才能提交代码、更新代码或查看历史记录,如果中央服务器崩溃,可能会丢失所有数据。常见的CVCS工具包括:
- SVN
- CVS
分布式版本控制工具(DVCS):分布式版本控制系统没有“中央服务器”,每个开发者都有一个完整的本地仓库副本,工作时开发者可以在没有网络连接的情况下进行大部分版本控制操作,因为版本库就在你自己的电脑上,多人协作只需要各自的修改推送给对方,就能互相看到对方的修改了。常见的DVCS工具包括:
- Git
2.2 SVN
Subversion(SVN)是一个开源的集中式版本控制系统,以其原子性提交、细粒度的权限控制和网络依赖性为特点,适用于需要集中管理代码和严格权限控制的项目环境,在处理大规模并行开发和频繁分支操作方面不如分布式版本控制系统灵活,目前使用较少。
2.3 Git
Git是分布式的,无需中心服务器即可运作,每台计算机都拥有完整的版本库。使用Git时配合中心服务器,其目的在于方便交换代码的修改。中心服务器与我们每个人的PC是一样的地位是一样的,可以视作一个持续在线、便于协作的开发者PC。
3 Git工作流程框架
命令如下:
- clone(克隆): 从远程仓库中克隆代码到本地仓库
- checkout (检出):从本地仓库中检出一个仓库分支然后进行修订
- add(添加): 在提交前先将代码提交到暂存区
- commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本
- fetch (抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
- pull (拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge
- push(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库