git学习(廖雪峰git网站)(3)---时光穿梭机(回退和前进)

前提条件:已经将文件提交。

(1)修改你提交的文本的内容,运行git status命令看看结果:能够查到文件已经修改但未提交;

如果你已经修改过,但忘记是怎么修改的,用git diff查看是怎么修改的;

提交修改和提交新文件是一样的步骤:git add 文件名称   ----》中间插一步 git status,检查一下要提交的东西包不包括你想要的文件,存在的话就运行 git commit 文件名,所有的要提交的,都已被提交,且目录是干净的

小结

  • 要随时掌握工作区的状态,使用git status命令。

  • 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

(2)用Git log命令查看修改的历史记录

git log 命令显示从最近到最远的提交日志

当然如果提交的次数过多,可能显示的信息较多的话,加上--pretty=oneline参数

(我快要疯了,打了三遍才对,要看准字母哟!

一大串类似1094adb...的是commit id(版本号),和SVN不一样,Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,而且你看到的commit id和我的肯定不一样,以你自己的为准。

小提示:每次提交一个新版本,实际都会自动串成一条时间线。

(3)版本回退

注意:在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

使用git reset --hard HEAD^(--hard放心使用)

查看返回的版本内的内容:cat 文件名

(可能是中文的原因显示不出来,具体我也不清楚)

还可以接着回退,用git log再看看现在版本库的状态

如果已经回退了,你又想返回你回退前的最新怎么办

只要命令窗口没有关闭过,你可以往上找该版本的commit id,然后就可以回去

版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。

查看learn.txt内的内容

若你进行了上述版本回退操作的话,后悔了,当你用$ git reset --hard HEAD^回退到add distributed版本时,再想恢复到append GPL,就必须找到append GPL的commit id。Git提供了一个命令git reflog用来记录你的每一次命令:

然后就可以查到当前append GPL的commit  id是1094adb,然后在执行git reset --hard 1094abd,就可以乘坐时光穿梭机了!!!

小结:

现在总结一下:

  • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

  • cat 文件名,查看文件的内容

猜你喜欢

转载自blog.csdn.net/weixin_42246997/article/details/84178982