Git 是一种版本控制工具
具有的功能如下:
1.协同修改
多人并行不悖的修改服务器端的同一个文件
2.数据备份
不仅仅保存目录和文件的当前状态,还能够保存一个提交过的历史状态
3.版本管理
在保存每一个版本文件信息的时候要做到不保存重复数据,以节约空间,提高运行效率。
这方面svn采用的是增量式管理,而GIT采用的是文件系统快照的方式
4.权限控制
1.对团队开发人员进行权限控制 2.对团队开发贡献的代码进行审核
5.历史记录
查看修改人,修改时间,修改内容,日志信息
将本地文件恢复到某一个历史状态
6.分支管理
允许团队在工作中多生产线同时推进任务,进一步提高效率
集中式版本控制工具主要以svn为主,会存在单点故障。
分布式控制工具主要以git为止,能够避免单点故障。
git发展历史
linux最开始合并版本由Linus本人手动合并代码。
BitKeeper商业软件愿意免费授权给linux进行版本控制,后来Linus大神两周用c语言开发了自己的版本控制软件git
然后越来越多的语言都交给git进行版本控制
1.git结构
工作区:写代码的区间
暂存区:代码由工作区 git add 放在缓存区,但是还未提交
本地库:提交的历史版本
2.GIT和代码托管中心
github是git的一个托管中心
在局域网下 可以使用gitlab服务器
外网下 可以使用GitHub或者码云
3.本地库和远程库
团队内部协作:
跨团队协作:
4.本地库的初始化
其实就是一个指定的目录下输入git init命令,创建文件夹和文件
5.设置签名
形式:
用户名:tom
email:1210152726@qq.com
作用:区分不同开发人员的身份
辨析:这里设置的前面和登录远程库(代码托管中心)的账号,密码没有任何关系
1.项目级别/仓库级别:仅在当前本地范围内有效
git config user.name tom_project
git config user.email 1210152726@qq.com
信息保存的位置在当前目录下的config文件中
2.系统用户级别:登录当前操作系统的用户范围
git config -- global user.name tom_project
git config -- global user.email 1210152726@qq.com
信息保存在系统家目录下的 .gitconfig隐藏文件中
3.级别优先级:二者都有时采用项目级别,项目优先级的级别>系统用户级别,如果只有系统用户的级别的前面,就以系统用户级别的前面为主。不允许两种级别都没有。