1.理论基础
1.1 Git记录的是什么
Git将每个版本独立保存。
1.2 三棵树
- 工作区域
存放项目的地方。
- 暂存区域
存放改动的地方。
- Git仓库
最终存放所有版本的地方。
1.3 Git的工作流程
Git的工作流程:
-
在工作目录中添加、修改文件
-
将需要进行版本管理的文件放入暂存区域
-
将暂存区域的文件提交到Git仓库
Git管理文件的三种状态:
-
已修改(modified)
-
已暂存(staged)
-
已提交(committed)
2. 实践
2.1 初次使用Git前的配置
在命令行模式里输入:
git config --global user.name "用户名"
git config --global user.email "邮箱"
2.2 创建空仓库
git init
2.3 提交流程
git add 文件名
git commit -m "你干了啥"
2.4 常用命令
查看状态:
git status
恢复到以前的状态:
git reset HEAD
恢复上一次的内容:
git checkout -- <file>
查看历史提交:
git log
git log --decorate --oneline --graph --all
2.5 回到过去
reset 和 checkout
git reset --soft HEAD~
- 移动HEAD的指向,将其指向上一个快照,相当于撤销一次错误的提交。
git reset --mixed HEAD~数字
(前数字快照)[–mixed,默认]
-
移动HEAD的指向,将其指向上一个快照
-
将HEAD移动后指向的快照回滚到暂存区域
git reset --hard HEAD~
-
移动HEAD的指向,将其指向上一个快照
-
将HEAD移动后指向的快照回滚到暂存区域
-
将暂存区域的文件还原到工作目录
git reset 版本快照的ID号
- 回滚指定快照
git reset 版本快照 文件名/路径
- 回滚个别文件
git reflog
- 查看所有历史版本
2.6 版本对比
- 比较暂存区域与工作目录
git diff
F和B键整页移动查看;
J和K上下移动查看;
D和U移动半页;
z跳转到第一行;3z第三行;
Z跳转到最后一行。
/ 搜索命令,n向下搜索,N向上搜索,q退出。
- 比较两个历史快照
git diff 快照ID1 快照ID2
- 比较当前工作目录和Git仓库中的快照
git diff 快照ID
- 比较当前暂存区域和Git仓库中的快照
git diff --cached
git diff --cached 快照ID
2.7 小技巧
- 修改最后一次提交
git commit --amend -m "新的说明"
- 删除文件
git checkout -- 文件名
恢复删除文件
git rm 文件名
删除工作空间和暂存空间的文件
git rm --cached 文件名
删除暂存区域的文件 - 重命名文件
git mv 旧文件名 新文件名
2.8 Git分支
- 创建分支
git branch 分支名
git log --decorate
查看分支 - 切换分支
git checkout 分支名
- 合并分支
git merge 分支名
- 删除分支
git branch -d 分支名