git reset 之后,再找回失去的代码
就可以了,注意,这里一定要带上–hard,因为这里是要强行把失去的代码补回来。我们已经会退到了fourth 处,five的提交记录已经找不到了,8ff36ee HEAD@{10}: commit: 添加文件。但是,如果我们突然反悔了,又想回到five 处,应该怎么办呢。即,我们目前在five 处,但是想回退到fourth 处。如上面内容所示,所有的提交和reset记录都在里面,我们。,这时候,强大
有时候,我们会遇到这种情况
获取提交记录
git log --pretty=one
比如,git 提交记录如下
1f0e8646ee5c5e7bfffe0ce38fe183300c926065 (HEAD -> main, origin/main) five
dcd605c388481e68d396d6c27949e9de4a11ab77 fourth
ef98780ec960f95c2ab1a9281f02dc01e2da65b5 third
47b662590820c3dd0871573f8324d2ba9f7c7ea1 second
788917326ae068b12baf5bb698cc6e6defddd968 fist
8ff36ee80a21b1ce967c50c089d49ddfc3d5af77 添加文件
4509c6ed71c4794e32eb3e02b98f7d1e9f27e50c Initial Commit
即,我们目前在five 处,但是想回退到fourth 处
这时候,我们可以执行
git reset --hard dcd605c388481e6
这样就回退到了fourth 处
这时候,我们再获取提交记录,获取到如下
dcd605c388481e68d396d6c27949e9de4a11ab77 (HEAD -> main) fourth
ef98780ec960f95c2ab1a9281f02dc01e2da65b5 third
47b662590820c3dd0871573f8324d2ba9f7c7ea1 second
788917326ae068b12baf5bb698cc6e6defddd968 fist
8ff36ee80a21b1ce967c50c089d49ddfc3d5af77 添加文件
4509c6ed71c4794e32eb3e02b98f7d1e9f27e50c Initial Commit
我们已经会退到了fourth 处,five的提交记录已经找不到了,
但是,如果我们突然反悔了,又想回到five 处,应该怎么办呢
,这时候,强大的git reflog 就派上用场了
执行下面命令
git reflog
获取到如下内容
dcd605c (HEAD -> main) HEAD@{0}: reset: moving to dcd605c388481e6
1f0e864 (origin/main) HEAD@{1}: commit: five
dcd605c (HEAD -> main) HEAD@{2}: commit: fourth
ef98780 HEAD@{3}: reset: moving to ef98780
47b6625 HEAD@{4}: reset: moving to 47b6625
ef98780 HEAD@{5}: reset: moving to ef98780
47b6625 HEAD@{6}: reset: moving to HEAD^
ef98780 HEAD@{7}: commit: third
47b6625 HEAD@{8}: commit: second
7889173 HEAD@{9}: commit: fist
8ff36ee HEAD@{10}: commit: 添加文件
4509c6e HEAD@{11}: commit (initial): Initial Commit
如上面内容所示,所有的提交和reset记录都在里面,我们
如果想回退到five ,就可以通过five 的 commitid进行会退
git reset --hard 1f0e864
就可以了,注意,这里一定要带上–hard,因为这里是要强行把失去的代码补回来
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)