1. 删除文件 git rm <file name>
如果你已经提交过了一个 read.md文件,现在想删掉它,即可以使用
git rm read.md
,然后再使用
git commit –m “remove the read.md file”
就可以完成删除。
那如果是修改了文件名嘞,把read.md修改为readme.md。那么只需要在上面的两步中间插一步
git add readme.md
即可。
2. 版本间的切换
这里就是git很重要的功能了,在不同的提交版本之间切换,随心所欲。在此之前,介绍一个指针——HEAD。
HEAD指向的主分支master,而master指向最近提交的版本。进行版本间的切换有以下两种方式:
2.1 使用HEAD指针
由于HEAD指向的是当前版本,所以用HEAD^代表上一个版本,HEAD^^代表上上个版本,HEAD^3可以代表上上上个版本。命令为:
git reset HEAD^
2.2 使用版本的ID号
在使用git log指令以后,就可以看到历次提交的版本号。比如我的已经完成了四次提交:
git log --pretty=oneline
结果如上。我想回到 add readme file这个版本的话就可以用下面指令:
git reset 3abe6
当然这种加版本号的方式不仅可以后退也可以前进!
2.3 git reset命令的参数–hard|–mixed|–soft
用法如下:
git reset --hard HEAD^
git reset --mixed HEAD^
git reset --soft HEAD^
由于缺省的时候使用的就是–mixed参数,所以其可以省略。
以上三个参数的区别如下:
git reset --hard HEAD^
:将HEAD^版本的内容覆盖暂存区和工作区,并且将HEAD指针指向HEAD^版本。可见使用–hard参数十分残暴,如果你的工作区或是暂存区有东西没保存,你也找不回来了!!git reset --mixed HEAD^
:将HEAD^版本的内容覆盖暂存区,并且将HEAD指针指向HEAD^版本。git reset --soft HEAD^
:只将HEAD指针指向HEAD^版本。这就是软!!
2.4 忘记了版本号又想回到未来的版本怎么办?
这是git reset的最后一个问题,真的。如果你傻逼地关掉了git,你就被困在了过去吗?不是的,git早就知道我们这些傻逼的行为。
git reflog
可以查看以前的版本转换命令,如下。
从这里你可以找到以前提交的版本的ID号,再回去就可以了。
3. git checkout –将暂存区的文件覆盖工作区
git checkout后面如果不加文件名的话这是一条分支操作语句,不过如果加了文件名,作用如标题。
4. git diff 查看不同
git diff的用法很多,在这里只记录几种常用的用法:
git diff:比较工作区与暂存区之间内容的不同,不加参数。
git diff cashed:比较暂存区与最近一次提交的区别。
git diff :比较工作区与某一次提交之间的区别,如果是比较与最近一次的区别,则=HEAD即可。
git diff :比较两个版本之间的区别