一、前面课程已经使用过的命令
1、和远程相关命令
1.git clone 远程github地址 从远程库地址克隆工程到本地
2.git push -u origin master 将本地的master分支推送到远程
2、本地工作区,暂存区和版本库操作
1.git add 文件名 将代码提交到暂存区
2.git status 查看当前提交的状态
3.git commit -m '注释' 将代码从暂存区提交到版本库
4.git log 查看git日志
二、对比操作
使用命令:git diff --参数
1、工作区文件与暂存区文件对比
大概的意思如下图:
具体操作如下:
2、对比暂存区与版本库文件的差异
git diff --cached
3、工作区与版本库文件的差别
git diff master
最后,将这次的测试全部提交
讲解其他内容之前,需要先弄清除git log中出现了一些内容的意义
三、git log
的版本id
我们可以根据这些id找到具体的每一次版本的操作,当然,你完全不需要记住或者写完这么长一串,如果以后操作需要用到某个版本id,只需要写上前面几个就可以了,上面的 git log
是显示版本的详细信息,如果只需要看简化版信息,可以写成下面这样
git log --oneline
这里的--oneline
参数,就是将每条日志的输出为一行的意思,可以看到版本id也直接简化输出了
当然 git log
命令还有其他很多有用参数,这里就没必要一一讲解了,以后需要用的到时候再去查询就可以了
四、HEAD
HEAD
是什么?简单来说,git是如何知道当前你在哪个版本上工作呢?那是因为,git保存着一个名为 HEAD
的特别指针,你可以把HEAD想象成导游的红旗,红旗在前面显眼的带着路,这个红旗走到哪里,就需要跟到哪里。也就是HEAD
在哪里,你就在哪里工作
观察下面的动画:
注意:理解HEAD
是我们理解后面版本回退,以及分支的重要概念!
五、版本回退
根据上面的动画,其实就很容易理解版本怎么回退。 我们每提交一个版本,都有版本号,当前版本在哪里,其实就是HEAD的指向在哪里!
现在HEAD的指向在第二次提交这里,如果我们觉得,这一次提交的版本不是太满意,我们需要撤回到之前的版本,就叫版本回退,由于每次提交的版本都有版本号,其实你想回退到哪个版本,只需要指定具体的版本号就可以了,无论是前进还是后退
命令格式: git reset --hard 版本号
比如:我们想要回退到 第一次提交的版本这里,也就是版本号是7833933
的这一个,只需要执行这样的代码:
git reset --hard 7833933
下面是代码的动画演示:
通过上面的演示可以看出,回退了版本,同时工作区中的内容也就跟着改变了
执行过程动画演示:
当然,如果记不住版本号,也有其他的操作方式,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
git reset --hard 7833933
等同于:
git reset --hard HEAD^
六、查看操作记录
当然,如果说我们使用版本id号回退到之前的版本后,使用git log
就再也看不到前面的版本号了,不过不存在,我们可以使用git reflog
这条命令的意思是查看所有版本的操作记录
命令格式: git reflog
七、撤销操作
撤销操作其实常见的有三种场景:
场景1、已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
场景2、改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,使用命令:git checkout -- <fileName>
,如果有多个文件<fileName>
用 .
代替
下面是动画代码演示:
场景3、修改的内容已经提交到了暂存区,想要撤销暂存区的内容,使用命令:git reset HEAD <fileName>
,如果有多个文件<fileName>
用 .
代替
下面是动画代码演示:
八、删除操作
1、工作区的文件可以随意删除
2、如果文件已经提交到暂存区,如下图:
如果想删除暂存区的文件,有两种情况:
(1)、同时删除暂存区与工作区的文件,使用命令:git rm -f 文件名
(2)、只想删除暂存区文件,使用命令:git rm --cached 文件名
Comments