Git入门——版本管理(1)

Git入门——版本管理(1)

一、文档跟踪

1、查看文档状态

修改test.txt文本文档,查看文件状态
在这里插入图片描述
git status:跟踪本地库数据, 随时监听变化,红色字体显示test.txt文本文档被修改了, 但是没有准备提交的修改后的内文档。

当我git add之后:

爆红变成了绿色,这告诉我们要被提交的文件包括刚刚修改的test.txt。可以放心提交,之后git commit 就完事儿了

2、查看文章的不同

再次修改一下文件内容,使用git diff命令用来查看文章的变化过程, 查看文件修改的内容。
在这里插入图片描述
红色区域显示,我删除了一句i am 啊 Chinese和一句 come back
后来又加了一句i am 啊 Chinese

总结: git status监视工作区状态,git diff查看文件的变化内容

二、版本回退

假如说我现在修改一下我文件夹下面的my.txt文档,之后提交。

$ git add my.txt
$ git commit -m "second submit"
[master 06fb353] second submit
 1 file changed, 1 insertion(+)

现在你设想一下,假如我现在回退到第一版,但是我现在修改了几百次,我怎么记住这几百次都是修改了什么呢? ??又不是考最强大脑

but,Git可以记住,使用命令git log可以查看全部的修改日志。

$ git log
commit f18f4a2361e461715ba8609d5deb9591663bbaf8 (HEAD -> master)
Author: baibaoyu <1976643955@qq.com>
Date:   Tue Dec 24 09:22:18 2019 +0800

    test submit

commit 06fb353fa5a193b185e8fdd63ce61ffc903e3321
Author: baibaoyu <1976643955@qq.com>
Date:   Tue Dec 24 09:12:52 2019 +0800

    second submit

commit 5c4bcf7a0322ba4ee7d2293f906e84b59b7a4fba
Author: baibaoyu <1976643955@qq.com>
Date:   Tue Dec 24 09:09:02 2019 +0800

    huoying.jpg

commit 1a9d6798b401765e98cd9173d2dbf114feeb1bbd
Author: baibaoyu <1976643955@qq.com>
Date:   Tue Dec 24 09:07:32 2019 +0800

    first commit

上面的是最先的更新信息, 越往下时间越久远。我第一次提交备注信息是first commit ,最新的一次是test submit

但是上面的东西太乱了,让他清晰一点

$ git log --pretty=oneline
f18f4a2361e461715ba8609d5deb9591663bbaf8 
(HEAD -> master) test submit
06fb353fa5a193b185e8fdd63ce61ffc903e3321 second submit
5c4bcf7a0322ba4ee7d2293f906e84b59b7a4fba huoying.jpg
1a9d6798b401765e98cd9173d2dbf114feeb1bbd first commit

里面有一堆乱七八糟的代码06fb353...,这个就是用来区分不同的版本的。那么如何返回上一次提交的时候的版本呢?
为了清晰一些看到结果,我现在git文件夹下面的东西是这样的:
在这里插入图片描述
那么开始执行回退命令:

$ git reset --hard head^
HEAD is now at 06fb353 second submit

温馨提示: head^ 是回退一个版本, head^^是回退两个版本,一百个太多,就用head~100来表示。

那么再来看一看文件夹变成了什么样子:
在这里插入图片描述
实现操作:删除了test.txt,也就是返回到上一次提交的时候了。

git log看一下:(最新的提交消失了……)

$ git log
commit 06fb353fa5a193b185e8fdd63ce61ffc903e3321 
(HEAD -> master)
Author: baibaoyu <1976643955@qq.com>
Date:   Tue Dec 24 09:12:52 2019 +0800

    second submit

commit 5c4bcf7a0322ba4ee7d2293f906e84b59b7a4fba
Author: baibaoyu <1976643955@qq.com>
Date:   Tue Dec 24 09:09:02 2019 +0800

    huoying.jpg

commit 1a9d6798b401765e98cd9173d2dbf114feeb1bbd
Author: baibaoyu <1976643955@qq.com>
Date:   Tue Dec 24 09:07:32 2019 +0800

    first commit

那现在想一个问题——我们现在删除了那个文件,日志文件也不要存在那个记录了,完了,那我想要再次找到上一个版本怎么办??
还记得之前说的那一段无比长的代码吗??f18f4a2361e461715ba8609d5deb9591663bbaf8

根据这段代码就可以找到原来的那个版本

$ git reset --hard f18f4a2361e461715ba8609d5deb9591663bbaf8
HEAD is now at f18f4a2 test submit

现在就回去了,看看日志文件:(原来的版本又回来了)

$ git log --pretty=oneline
f18f4a2361e461715ba8609d5deb9591663bbaf8 
(HEAD -> master) test submit
06fb353fa5a193b185e8fdd63ce61ffc903e3321 second submit
5c4bcf7a0322ba4ee7d2293f906e84b59b7a4fba huoying.jpg
1a9d6798b401765e98cd9173d2dbf114feeb1bbd first commit

文件夹是下面这个样子的:
在这里插入图片描述
的确,他回来了,像灰太狼一样

git log --pretty=oneline的时候有没有发现一个现象,第一行是有颜色的,而且后面跟上head...,这是为什么???
其实Git实现版本回退的时候是靠指针的移动实现的,head^之后,指针向下移动, 但是在这个时间节点之后的版本也仍然存在。并没有删除,所以刚才我们可以找到他。

Git还提供了一个命令,来记录每一次的命令:(主要是指针的移动)

$ git reflog
f18f4a2 (HEAD -> master) HEAD@{0}: reset: moving to
 f18f4a2361e461715ba8609d5deb9591663bbaf8
06fb353 HEAD@{1}: reset: moving to head^
f18f4a2 (HEAD -> master) HEAD@{2}: commit: test submit
06fb353 HEAD@{3}: commit: second submit
5c4bcf7 HEAD@{4}: commit: huoying.jpg
1a9d679 HEAD@{5}: commit (initial): first commit
版本回退总结

1、git log查看版本信息
2、git reset --hard head^向上回退一个版本
3、git reset --hard 版本号回退到相应的版本
4、git reflog 查看历史操作(head指针的移动)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值