目录
基本概念
特性
1.Git是一个分布式版本控制系统,能让使用的每个人电脑上都有一个完整的版本库。不同于 集中式的版本控制系统 ,若中央服务器瘫痪,所有人都无法工作。
2.原子性提交:类似于数据库的事务处理,每一个提交都是由多个文件的修改组成,要么全部提交成功,要么全部失败。能让项目比较容易的恢复到某个时间戳。
分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。
三个工作区域
工作空间,暂存区,本地仓库
工作区:就是你在电脑里能看到的目录,是实际存在的目录
暂存区:这里面存放了工作区文件的快照
版本库:工作区有一个隐藏目录.git,是Git的版本库,里面是提交的结果。
文件的状态变化周期
文件状态可用git status
进行查看
- 未跟踪(Untracked):文件即未跟踪的文件,添加文件到暂存区后,便会自动跟踪文件
- 已暂存(Staged):表示把已修改的文件放在下次提交时要保存的清单中。
- 已修改(Modified):表示修改了某个文件,但还没有提交保存;
- 已提交(Commit):表示该文件已经被安全地保存在本地数据库中了;
查询操作
查看配置信息
git config --global --list
用户配置git config --system --list
系统配置git config --local --list
仓库配置
查看当前文件状态
- 使用
git status
命令
- 使用
查看当前分支的提交历史和分支合并图
git log
git log --stat
显示更加详细的信息git log --graph
可视化你的提交图git log --pretty=format:'%h : %s' --graph
: 简略显示
# 使用下指令可以将显示内容美化,并且给指令起一个别名
$ git config --global alias.mlog 'log --pretty=format:"%C(auto)%h %ad | %C(auto)%s%d %Cblue(%an)" --graph --date=short'
# 以后每次使用只需执行
$ git mlog
上述代码来源于1
显示当前分支的最近几次提交
git reflog
仓库图形管理界面
gitk
不同的差别比较
git diff
比较的是工作区和暂存区的差别git diff –-cached
比较的是暂存区和版本库的差别git diff HEAD
可以查看工作区和版本库的差别git diff <branch1> <branch2>
比较两分支git diff <file1> <file2>比较两文件
–stat 参数可以统计一下有哪些文件被改动,有多少行被改动
引用