定义:Git是免费的、开源的、分布式版本控制系统;
一、安装:
1、官网下载对应安装包:https://git-scm.com/download/win
二、版本控制系统分类:
1、集中化的版本控制系统:CVS、SVN,有一个*服务器,客户端可以连接上进行版本管理;单点故障,本地只存最新版本;
2、分布式的版本控制系统:
(1)客户端不仅提取最新的版本快照,而是把代码仓库完整的镜像下来;
(2)所有历史版本都存下来了;历史版本会很多,进行压缩;
(3)相当于每个客户端都是服务器,可以进行备份,去中心化思路
(4)没有网络的情况下,仍然可以看到历史版本;
(6)可以进行夸企业工作,把代码都传到远程仓库(GitHub),github相当于公共的git客户端;
(7)git存储的是版本的索引,而不是版本
三、git的本地结构:
1、工作区:正在工作的区
2、暂存区:打算要提交,但没提交,暂时存储
3、本地区:本地仓库
(1)git add 将工作区的内容提交到暂存区
(2)git commit 将暂存区的内容提交到本地仓库
四、代码托管中心,代码托管中心的任务是帮助维护远程仓库;
1、本地仓库:
2、远程仓库:
3、本地仓库与远程仓库的交互方式有两种:
(1)团队内部协作:
- 用户A在本地库创建项目;
- 用户A将代码push到远程仓库;
- 用户B需要加入用户A的团队,并由用户A授权后才能将项目代码clone到本地;
- 用户B更新版本后将代码push到远程仓库;
- 用户A可以pull用户B提交的代码;
(2)夸团队(公司)协作:
- 公司A的用户A进行项目创建,并将代码push到公司A的远程仓库;
- 将用户A创建的项目进行fork操作,同步到公司B的远程仓库;
- 公司B的员工即可对代码进行clone操作;
- 当公司B的员工进行代码更新后,提交到公司B的远程仓库;
- 公司A可以对公司B的远程仓库发出pull request申请;
- 由公司B审核通过后进行代码merge操作;
- 这样公司A就可以pull到公司B提交的代码。
五、托管中心平台:
1、在局域网环境下,可以搭建GitLab服务器作为代码托管中心,适用于公司内部协作;
2、在外网环境下,可以使用GitHub或者Gitee作为代码托管中心,GitHub是国外的、已经搭建好的代码托管中心,Gitee是阿里的、国内的代码托管中心,相对来说,在国内,Gitee会比GitHub快一些;
六、常见命令:
git --version;
clear;
git config --global user.name "zhucl";
git config --global user.email "250596243@qq.com";
git init 本地仓库初始化 ,会生成隐藏的.git文件夹,使用ll -la查看,.git目录下的内容不要删除和修改
git add 文件名
git commit -m "提交备注" 将暂存区的内容提交到本地仓库,-m写备注,后面“”的内容就是备注
注意:
1、不放在本地仓库目录下的文件,git无法进行管理,add和commit都操作不了;
2、放在本地仓库目录下的文件,也需要先add再commit,git才能进行管理;
git status 查看工作区的状态,看是否有文件还存在,如果暂存区有内容,也会显示
git log 从近到远展示日志
- commit 当前历史记录的索引,是唯一的,通过hash算法算的
- Author:作者
- Date:时间
注意:当历史记录过多,最后行会有:,使用空格进入下一页,b进入上一页,退出q
git log --pretty=oneline 以漂亮的方式展示日志,所有内容展示在一行
git log --oneline 相对上一个,commit只截取部分
git reflog 会展示日志的head信息
git reste --hard commit 回退到commit的版本;