第二篇,git命令详解,回到过去
导读:git reset 1.txtgit checkout 1.txtgit reset --hard HEADgit 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