第二篇,git命令详解,回到过去
导读:
git reset 1.txt
git checkout 1.txt
git reset --hard HEAD
git reflog
- 丢弃工作区的改动:先在1.txt文件中增加一条信息(例如:练习回到过去),保存后退出,在git窗口输入:
git status
查看当前状态,然后输入:git reset 1.txt
或者:git checkout 1.txt
然后再次输入:git status
查看当前状态,当然你也可以打开1.txt这个文件查看具体信息是否回到了过去
注意:1.txt文件中所有未添加到缓存区的改动都将消失 - 从缓存区回到工作区:先在1.txt文件中输入一条信息(例如:练习再次回到过去),输入:
git add 1.txt
再输入:git reset --hard HEAD
在这个过程中你可以随时输入:git status
来查看文件状态,最后打开文件看看是否回到了过去。 - **在不同的仓库区版本中穿梭:**先在1.txt文件中输入一条信息(例如:练习第三次回到过去),输入:
git commit -am '第三次回到过去'
再输入:git reset --hard HEAD^
在这个过程中你可以随时输入:git status
来查看文件状态,最后打开文件看看是否回到了过去。git reset --hard HEAD^这条命令和上面2中极为相似,实际上,^
符号代表了回到过去的第几层,没有就是回到当前仓库区,一个^
就是回到最近的过去,以此类推 - 来回穿梭,
git reset --hard 8caa1a5
后面的8caa1a5代表了每一个版本的代号(一般只取前5位即可),这样同样可以回到任意你想去的过去,不同的是这条命令还能到达将来的任意位置,为了知道每个版本的代号,可以输入:git log --oneline
,如下图:
- 到达未来:上面已经说过到达未来同样可以使用:
git reset --hard 8caa1a5
这条命令,但是如果你本身已经在过去了,即便是你输入:git log --oneline
这条命令也无法查看到你想要到达的未来的代号,如下图
所以这里要输入:git reflog
,这条命令可以让你查看你想要到达的未来的代号,如下图 - 单个文件的回到过去: 命令:
git checkout 代号 -- 1.txt
这条命令会让单个文件回到过去,而不会影响其他文件 - 下节预告: 上面的
checkout
命令会在下一节的分支中经常使用,
查看分支:git branch
建立分支:git checkout -b dev
删除分支:git branch -d dev