Git+中文教程(10)
时间:2026-01-20
时间:2026-01-20
Git+中文教程
Git 中文教程
- - [master] Merge branch 'robin'
+ * [master^] Some fun
++* [robin] some work
我们为 文件增加一些内容并提交。
$ echo "Botch, botch, botch" >> hello
$ git-commit -a -m "some botch"
$ git-show-branch
我们可以看到此时 softreset 比 master 推进了一个版本 "some botch" 。
! [master] Merge branch 'robin'
! [robin] some work
* [softreset] some botch
---
* [softreset] some botch
- - [master] Merge branch 'robin'
+ * [master^] Some fun
++* [robin] some work
现在让我们来考虑这样的一种情况,假如我们现在对刚刚提交的内容不满意,那么我们再编辑项目的内容,再提交的话,那么 "some botch" 的内容就会留在版本库中了。我们当然不希望将有明显问题的内容留在版本库中,这个时候 --soft 选项就很有用了。为了深入了解 --soft 的机制,我们看看现在 softreset 分支的头和 ORIG_HEAD 保存的索引。
$ cat .git/refs/heads/softreset .git/ORIG_HEAD
结果如下:
5e7cf906233e052bdca8c598cad2cb5478f9540a
7bbd1370e2c667d955b6f6652bf8274efdc1fbd3
现在用 --soft 选项逆转刚才提交的内容:
git-reset --soft HEAD^
现在让我们再看看 .git/ORIG_HEAD 的中保存了什么?