git操作(二)

之前我们对于git已经有了一定的了解,现在我们学习一些关于git的新内容。

一.修改⽂件

首先,我们先来认识一个命令:

git status
//⽤于查看在你上次提交之后是否有对⽂件进⾏再次修改,注意指的是仓库和工作区对比

关于三区的内容,上一篇文章已经讲过了,这里我们就简单介绍下:

工作区:是指自己编写内容的位置

暂存区:是指将工作区内容通过git add暂时保存的位置

版本区:即本地仓库位置

接下来我们再来认识几个新的命令:

git diff [file];
//表示显⽰暂存区和⼯作区⽂件的差异
git diff HEAD -- [file];
//命令来查看版本库和⼯作区⽂件的区别
git log
//表示查看日志

通过上面的指令,我们就可以简单查看三区的对比信息了。

二.版本回退

Git能够管理⽂件的历史版本,这也是版本控制器重要的能⼒,现在我想要曾经写过的某个版本。怎么办?
 

git reset --soft +HEAD;
//参数对于⼯作区和暂存区的内容都不变,只是将版本库回退到某个指定版本

git reset --mixed +HEAD;
//为默认选项,使⽤时可以不⽤带该参数。该参数将暂存区的内容退回为指定提交版本内容,⼯作区⽂件保持不变

git reset --hard +HEAD;
//参数将暂存区与⼯作区都退回到指定版本。切记⼯作区有未提交的代码时不要⽤这个命
//令,因为⼯作区会回滚,你没有提交的代码就再也找不回了,所以使⽤该参数前⼀定要慎重

补充知识:

HEAD 说明:
可直接写成commit id,表⽰指定退回的版本
HEAD表⽰当前版本
HEAD^上⼀个版本
HEAD^^上上⼀个版本

可以使⽤〜数字表⽰:
HEAD~0表⽰当前版本
HEAD~1上⼀个版本
HEAD~2上上⼀个版本

 

重点:

git reflog;
//该命令⽤来记录本地的每⼀次命令

该命令可能可以补救下自己的某次错误操作。

git --version;
//查看git版本

三.撤销修改

情况⼀:对于⼯作区的代码,还没有 add:

对于该情况,我们当然可以直接删除想去掉的内容即可,但是如果内容过多,还是要学习常规操作的。

git checkout -- [file];
//注意:命令中的-- 很重要,切记不要省略,⼀旦省略,该命令就变为其他意思。
//该命令表示恢复到上⼀次 add 或 commit
//实际上只改变工作区


情况⼆:已经 add ,但没有 commit:
操作如下:

git reset --mixed HEAD [file];
git reset --hard HEAD [file];

//回到了情况一
git checkout -- [file];

情况三:已经 add ,并且也 commit 了:

该部分比较特殊:

这是有条件的,就是你还没有把⾃⼰的本地版本库推送到远程,否则,是不行的。
 

git reset --hard HEAD^ [file];
//
git checkout --[file];

四.删除⽂件

在Git中,删除也是⼀个修改操作.

git删除有两种可能:
1.确实要从版本库中删除该⽂件

git rm file;

将⽂件从暂存区和⼯作区中删除,并且commit.

2.不⼩⼼删错了
对第⼆种情况,很明显误删,需要使⽤ git 来进⾏恢复

操作如下:

//该操作其实其实就是回退操作
//等同于情况二
git reset --mixed HEAD [file];
git checkout --file;


 

最后,bye!

你可能感兴趣的:(git)