1.git status :查看缓存区状态
我们在工作目录下创建一个name.txt文件夹。打开git bash,输入
git status指令
git提示我们创建了name.txt文件,但是还未进行add操作加入到缓存区,所以git目前无法跟踪。
根据提示我们输入add指令:
git add name.txt,然后输入git status再查看缓存区状态
name.txt变成绿色了,说明我们add操作成功,那假如说我add之后我们我想撤销怎么办(未commit)。我们可以执行git reset HEAD name.txt指令撤销。最后输入git status再查看缓存区状态
可以看到name.txt变成了未add了
2.git checkout --文件名
git checkout --文件名 用于撤销工作区的内容。同样举上面的例子:假如说昨天name.txt被我提交到缓存区了,今天我又对name.txt进行修改,但是现在我想把工作区的内容撤销掉。
我们可以先使用git diff name.txt查看工作区和缓存区的差异
发现今天我只给name.txt添加了俩个字母aa(当然日常工作可不是这么简单,你一天工作可能写到自己发懵,你手动删除根本不知从哪开始),我想恢复到昨天的内容可以调用:git checkout -- name.txt。你打开你的文件就会发现内容已经恢复到昨天的状态。git diff name.txt可以查看工作区和缓存区的差异,那工作区和本地仓库差异、缓存区和本地仓库差异怎么看。
3.查看差异指令
git diff 比较的是工作区和暂存区的差别
git diff --cached 比较的是暂存区和版本库的差别
git diff HEAD 可以查看工作区和版本库的差别
还是举上面的例子。name.txt文件被我们commit到了版本库,现在我在工作区对name.txt进行修改。通过
git diff HEAD name.txt可以查看工作区和版本库的差异
现在我在工作区对name.txt进行修改后进行add操作,通过git diff --cached name.txt
可以查看缓存区和版本库的差异
因为我们add之后缓存区和工作区的代码已经一样,因此他们和版本库的差异是相同的。
4.git reset 版本号
git reset 版本号可以让我们回退到某个版本,默认是版本库和缓存区都会回退,工作区不会回退。
依旧使用上面的例子:假如说我们今天对name.txt修改了然后准备下班我们把它add到缓存区,然后commit到版本库。但是突然发现有个bug怎么办?
先调用git reflog查看我们的提交的版本号,这个指令可以看到我们所有的操作,包括删掉的commit
然后我们可以看到第一个commit是我们刚提交的版本吗,如果要回到红圈圈起来的那个版本我们可以调用:git reset 6637c52。最后调用git log查看一下日志。
已经显示版本回退成功了
需要注意的是缓存区也会跟随版本回退,工作区不变。当你重新修改完后需要add再commit。
本文深入讲解Git中关键命令的使用,如git status查看缓存区状态,git checkout撤销工作区内容,git diff对比差异,git reset回退版本,帮助开发者高效管理版本控制。







2408

被折叠的 条评论
为什么被折叠?



