1、分区基本概念:
-
工作区:本地目录看到的地方
-
暂存区:一般存放在 “.git 目录下” 下的 index 文件(.git/index)中, 所以我们把暂存区有时也叫作索引(index)
-
版本区: git的版本库
2、git add :工作区的修改更新到暂存区 ,同时工作区修改的文件内容被写入到对象库中的一个新的对象中,而该对象的 ID 被记录在暂存区的文件索引中。
3、 git commit: 暂存区的目录树写到版本库(对象库)中,master 分支会做相应的 更新。即 master 指向的目录树就是提交时暂存区的目录树
4、 git reset HEAD:暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
5、 git rm --cache :直接从暂存区删除文件,工作区不做修改
6、 “git checkout .”或者 git checkout – :会将暂存区的全部文件或者指定文件替换工作区的文件。该命令会清除工作区中未保存到缓存区的改动,慎用
7、git checkout HEAD . 或者 git checkout HEAD-- :会将HEAD 指向的master分支的全部或者指定文件替换暂存区以及工作区的文件。该命令会清除暂存区未提交的更改,也会清除工作区未提交的改动,慎用
8、git init:初始化git仓库,可在本地目录下创建 .git目录来跟踪工作目录的变化
9、rm -rf .git:删除git本地仓库
10、git clone <项目地址> <目录>:从现有的git仓库克隆项目,目录可以不用添加,默认在当前目录下
11、git status:以查看本人上次提交后是否有修改
12、git diff:查看已写入缓存和已修改未写入缓存的改动的区别,即对比工作区和暂存区
13、 git diff --cached 对比暂存区和版本库
14、 git diff --cached id:对比暂存区和快照号为 id 的版
15、 git diff commit_id1 commit_id2在版本库中对两个快照号分别为 id1 和 id2 的版本进行对
16、 git diff --stat:显示摘要而非整个diff
17、git commit -m “内容说明(可换行)”:将缓存区内容添加到版本库。
18、git commit -am “内容说明(可换行)”:跳过暂存区,可直接将工作区内容添加到版本库
19、git reset 恢复版本:
git reset file:将版本库恢复文件file到暂存区
git reset id:移动HEAD指向快照为id的版本,可用来回滚和前滚
git reset id <文件路径>:恢复id版本的某些指定文件
git reset id --mixed HEAD~[num]:移动HEAD的指向,指向前num个版本,将HEAD移动后的版本回滚到暂存区
git reset id --soft HEAD~[num]:移动HEAD的指向,指向前num个版本,不会滚到暂存区
git reset id --hard HEAD~[num]:移动HEAD的指向,指向前num个版本,将HEAD移动后的版本回滚到暂存区和工作区。
20、git checkout:恢复历史、切换分支
git checkout file_name:将暂存区的文件file恢复到工作区
git checkout id:将HEAD指向id,并将快照为id的版本恢复到暂存区和工作区
git checkout <分支>:切换分支,将HEAD指向该分支
21、git branch:创建新分支
22、git branch --delete/-D <分支名>:删除分支
23、git log --decorate/-D:查看分支
git log --decorate --oneline 精简显示
git log -D --oneline --graph --all 以图形的形式精简显示所有分支信息
24、git mv <旧文件名> <新文件名>:修改文件名
25、git rm:删除文件
git rm <文件名>:从工作区和缓存区删除文件
git rm --cache<文件名>:从暂存区中删除文件
26、git pull <远程主机名> <远程分支名>:<本地分支名>:拉取
27、 git push <远程主机名> <本地分支名>:<远程分支名>:提交