我是 git 新手,可能没有使用正确的术语,所以请耐心等待:)
假设我有一个包含 5 个更改的存储库,例如
D:\test\gitrepo2>git log --oneline
3a5fd33 555
3cfbfae 444
e9a78c8 333
a618586 222
b80d5e1 111
我了解到我可以通过执行以下操作同步回早期版本:
D:\test\gitrepo2>git reset e9a78c8 --hard
HEAD is now at e9a78c8 333
我的问题是:这样做之后,我怎样才能获得完整的日志,以便我可以返回到最新的修订版本?
运行日志不再显示这些修订:
D:\test\gitrepo2>git log --oneline
e9a78c8 333
a618586 222
b80d5e1 111
我还尝试添加 --all 开关,但这没有什么区别。在 Mercurial 中,在相同的情况下,即使在我更新到早期版本后,运行“hg log”也会给出完整的日志。
我认为“同步回来”实际上意味着您只是希望您的工作副本看起来像以前的时间点。为此,您想要checkout
, not reset
:
> git checkout e9a78c8
此时,您的存储库如下所示:
> git log master --oneline
3a5fd33 555 <--- master is still here
3cfbfae 444
e9a78c8 333 <--- HEAD (working copy) is here
a618586 222
b80d5e1 111
现在回到最新的提交master
, just git checkout master
again.
通过使用reset
,你得到的是这个:
> git log master --oneline
e9a78c8 333 <--- HEAD (working copy) and master are here
a618586 222
b80d5e1 111
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)