经过上一节的Git入门,对于稍有基础的程序员来说,下面的概念和知识就会学的很快了,基本就是边学边用,用的多了也就熟练了,所谓万事开头难。
当对readme.txt文件进行更改后。可以使用git diff查看我们到底做了哪些更改。
我们使用git status命令可以查看当前工作区的三种情况的状态。
1、修改文件后,git add之前。这时提示文件被修改,但是还没有被缓存。
2、git add文件之后,git commit之前。这时提示修改准备提交,修改的文件有readme.txt。
3、git commit之后。这时提示工作目录是干净的,没有任何修改需要提交。
版本回退
我们对readme.txt在进行一个修改。改为
it is a distributed version control system.
Git is free software distributed under the GPL.
如果经过多次修改,忘记到底修改了哪些内容,这时我们会使用git log来打印历史提交记录。其中commit后面跟着的数字为commit ID,这是通过SHA1算法生成的一串数字,能保证每个人的每次提交都不相同。
在Git中,用HEAD
表示当前版本,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本可以简写为HEAD~100
。
回退命令
git reset --hard HEAD^ 回退到上个版本
git reset --hard 75d7ff (至少6位commit ID)回退到commit ID为75d7ff的版本。
git reflog 当想从旧版本切到新版本时,又不知道版本号时,可以是使用这个命令查看。
版本库、工作区和暂存区的概念
工作目录有一个隐藏文件夹.git,这就是版本库。
当我们对目录中的文件进行修改后,git add后的状态就是暂存区状态,git commit用来一次性把多次git add的操作进行提交。
撤销修改
分三种情况:
1、修改文件,未添加到暂存区。
git checkout -- file 命令中的
--
很重要,没有--
,就变成了“切换到另一个分支”的命令
**添加到暂存区,再进行的修改,执行这个命令,则回到添加之前的状态。
2、修改文件后,添加到暂存区。
git reset HEAD file 回退到添加暂存区前
3、修改并提交
git reset --hard 版本回退命令
删除文件
git rm,同git add效果对立,一个是添加后进入暂存区,一个是删除后进入暂存区。
命令总结
git diff 命令可以查看修改的内容。
git status 命令可以让我们时刻掌握仓库当前的状态。
git log 命令查看历史提交日志。
git reflog 命令查看所有记录,包括删除或者回退
git reset --hard 版本号 回退命令
git rm 命令删除文件。会在工作区删除文件。
文章参考廖雪峰Git教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000