Git:git reset 的3种方式及git reset 和 git revert的区别

每次 git add . 和 git commit -m "描述" 之后都会产生一个唯一的 commit 哈希值。可以用 git log查看。如下:

而有时候 git commit 之后,发现没有add或很快又新的修改了,不想第二次 commit,修改的文件就没显示了,这个时候想回到 commit之前添加新的修改,该怎么办?

先看git reset 的3种方式: 

git reset --soft [commit哈希值]

git reset --mixed [commit哈希值]

git reset --hard [commit哈希值]

情景分析:

假如现在 未修改之前的commit 哈希值 为 123.

我们做了修改,并add .和commit了,这个时候看不到我们的改动记录了。commit哈希值为 456

此时突然发现还有新的修改,而不想再次commit。想撤销456回到123,并保留改动的记录,该怎么办。

这个时候我们可以用:

git reset --mixed 123    就可以回到123了,并保留了所有改动记录,此时git status会有所有改动的记录为红色。

而用

git reset --soft 123       也会回到123,也会保存改动的记录,不过会自动帮你 git add . 用git status查看是绿色。

而用

git reset --hard 123     也会回到123,不过不会保留任何你改动的记录(慎用)

git reset 原理图转载:

 

git revert原理图转载如下:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值