工作区(Working Directory)
就是你在电脑里能看到的目录
版本库(Repository)
工作区有一个隐藏目录.git
,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master
,以及指向master
的一个指针叫HEAD。
把文件往Git版本库里添加的时候,是分两步执行的:
- 第一步是用
git add
把文件添加进去,实际上就是把文件修改添加到暂存区; - 第二步是用
git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master
分支,所以,现在,git commit
就是往master
分支上提交更改。
常用命令
- 状态查看
$ git status
查看工作区、暂存区状态
- 查看修改内容
执行 git diff 来查看执行 git status 的结果的详细信息
$ git diff
- 查看历史记录
$ git log
git log
可以查看提交历史,以便确定要回退到哪个版本
git reflog
查看命令历史,以便确定要回到未来的哪个版本
如果嫌输出信息太多,可以试试加上--pretty=oneline
参数:git log --pretty=oneline 或 git log --oneline
多屏显示控制方式:空格向下翻页 b 向上翻页 q 退出
- 前进后退
$ git reset --hard
在Git中,用HEAD
表示当前版本,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,往上100个版本可以写成HEAD~100
git reset HEAD <file>
可以把暂存区的修改撤销掉(unstage),重新放回工作区
reset命令的三个参数
- --soft 参数 仅在本地库移动指针
- --mixed 参数 在本地库移动指针 重置暂存区
- --hard 参数 在本地库移动指针 重置暂存区 重置工作区
- 撤销修改
$ git checkout -- file
命令git checkout -- file
意思就是,把file
文件在工作区的修改全部撤销,这里有两种情况:
一种是file
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是file
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit
或git add
时的状态。
--
很重要,没有--
,就变成了“切换到另一个分支”的命令
- 删除文件
$ git rm
命令git rm
用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
申明:本文只是学习过程中的一个笔记。绝大部分内容来源于网络。主要有:廖雪峰的官方网站、菜鸟教程、尚硅谷官网,在此特别感谢。转摘引用,请注明出处。尊重别人的劳动成果是一种美德。