使用版本控制
协同修改
数据备份
版本管理(SVN为增量式管理,github为文件系统快照)
权限控制(git独有功能:对团队外开发者贡献的代码进行审核)
历史记录
分支管理
集中式版本控制工具
CVS,SVN
每一个开发人员为客户端,文件和版本信息在服务端
弊端:单点故障
分布式版本控制工具
Git,Merculiar
本地即可进行完整的版本控制
Git优势
- 大部分操作在本地完成,不需要联网
- 完整性保证,对每一次提交的数据进行hash操作,保证完整性即为比较hash值,判断是否相同
- 尽可能添加而非删除修改数据
- 分支操作快捷流畅(与快照式管理有关,创建和切换分支的操作很大程度上是创建和移动指针)
- 与Linux命令全面兼容
Git结构
工作区 | 暂存区 | 本地库 |
---|---|---|
写代码 | 临时存储 | 历史版本 |
Github为Git的代码托管中心之一
代码托管中心的任务:维护远程库
局域网环境下:Gitlab
外网环境下:GitHub,码云
本地库和远程库的交互方式
团队内协同开发
本地库→push→远程库→clone→另一个本地库(加入团队之后才能再次push)
跨团队协作
Git命令行操作:本地库操作和远程库操作
本地库操作
本地库初始化
命令:Git init
效果:输入命令ll .git/
.git中存放的是git相关的子目录和文件,不应删除也不应随意修改
设置签名
- 形式
用户名: example
邮件地址: somewhat@other.com
作用: 区分不同开发人员身份
辨析: 此处设置的用户名和远程库(代码托管中心)的账号密码无关
命令
项目级别/仓库级别:仅对当前本地库范围有效
git config user.name example_pro
git config user.email somewhat@other.com
系统用户级别:登陆当前操作系统的用户范围
git config --global user.name example_glb
git config --global user.email somewhat@other.com
- 基本操作
- 分支管理