本文不讲解git的一些基本使用,主要通过基本的一些用法,去感受git的工作方式和工作原理
学习前的基础需要:
- 基本的vim编辑器命令
- 了解c或c++中的指针的概念
- 了解基本的面向对象思想
一、版本管理的演变
1、集中式的VCS(version control system)
● 有集中的版本管理服务器
● 具备文件版本管理能力和分支管理能力
● 集成效率明显的提高
● 客户端必须时刻与服务器相连
缺点:客户端的代码是不完整的,只有服务端代码是最完整的
2、分布式VCS
● 服务端和客户端都有完整的版本库
● 脱离服务器,客户端照样可以管理版本
● 查看历史和版本比较等多数操作,不需要访问服务器,比集中式VCS更能提高版本管理效率
于是,Git来咯
● 最优的存储能力
● 开源
● 非凡的性能
● 很容易做备份
● 支持离线操作
● 很容易定制工作流程
二、Git安装和基本配置
1、安装git
官网很清楚了:https://git-scm.com/
2、命令行配置用户信息
这个用户信息配置是必要的,因为我们在本地的每一次操作,都是需要记录是由那个用户来进行的。
git config --global user.name 'your_name'
git config --global user.email 'your_email@domain.com'
那global有什么用呢?还有没有别的参数呢?
# local 只对某一个仓库有用
git config --local
# global 对当前用户的所有仓库有效
git config --global
# system 对系统所有登录的用户有效
git config --system
显示已经设置的config的对应配置,加 --list 可以查看
# 查看当前local配置中有哪些配置信息,只能在某一个仓库内部可以查看,因为local针对的是仓库级别
git config --list --local
# 查看当前global配置中有哪些配置信息
git config --list --global
# 查看当前system配置中有哪些配置信息
git config --list --system
当local和global等都有不同的信息配置时,哪个生效呢?
按照 local > global > system 三种配置的顺序生效
3、建本地仓库
分为两种情况
- 已经有了项目代码(文件夹),需要纳入Git管理
cd 项目所在文件夹
git init
- 新建的项目(文件夹)直接使用Git管理
cd 某一个文件夹
git init your_project_name # 创建你需要创建的文件夹名称
cd your_project_name
三、认识工作区和暂存区
git log # 只能查看当前仓库暂存区(add)的文件信息(绿色显示) 和 工作空间的信息(红色显示)
git status # 查看当前仓库中哪些文件已经提交(commit),哪些还没有提交(commit)
● 第1步:在code_file中创建了一个文件夹
● 第2步:命令行打开code_file文件夹,执行git init,code_file中会出现一个隐藏文件夹.git
● 第3步:创建new-one.txt 和 new-two.txt,执行git add new-one.txt
此时使用git status命令查看当前git的结果
可以看出,绿色的,说明已经被git管理起来了,并且放进了暂存区。
红色的文件new-two.txt,还没有被git管理起来,需要使用add命令,将工作区内容存入暂存区
git add new-one.txt # git add 后边可以跟很多个文件,包括文件夹
● 第4步:创建一次提交
git commit -m'Add new-one.txt file + logo'
在执行提交之后,通过git status查看暂存区的内容时,发现刚才的绿色已经add的文件不显示了,只有一个未提交的红色new-two.txt了
● 第5步:对于原有文件new-one.txt进行了改动,git status会有看到吗?如果允许改动内容该如何操作呢?
改动后可以看到,并且还会显示出modified
四、查看版本变更历史
# 查看git的版本演变历史,简洁方法
git log --oneline
git log -n2 --oneline # 查看最近的两次提交内容
# git log 默认查看的是当前分支的提交记录
git log --all # 查看本地所有分支的提交记录
1、创建一个分支
git checkout -b qiaosirong 提交的id号 # 从指定的提交id处创建一个叫做qiaosirong的分支
# eg:
git checkout -b qiaosirong
创建完毕后会自动切换分支
2、git log --oneline -n2 --graph 的使用
git log --oneline -n2 --graph # 命令行中看到版本变化
五、查看当前暂存区和工作区的内容状态
git status
上图表示在master分支中,工作区中有一个修改过的文件,暂存区中是空的