菜鸟笔记
提升您的技术认知

git rebase 后找回消失的commit-ag真人游戏

在git rebase操作时,存在冲突时,使用git rebase --abort处理后,结果发现commit的修改和记录都没有了。(使用git rebase --skip处理,也有导致commit消失不见得情况),就是使用git log看不到。

并不是真的在git中完全消失了。

这是可以使用reflog命令列出log 信息。
reflog : reference logs

$ git reflog 
d185b35 head@{
  0}: rebase finished: returning to refs/heads/passport
d185b35 head@{
  1}: rebase: checkout origin/passport
4ab8e52 head@{
  2}: checkout: moving from passport_email to passport
d185b35 head@{
  3}: checkout: moving from passport to passport_email
4ab8e52 head@{
  4}: checkout: moving from passprot_bak to passport
d185b35 head@{
  5}: checkout: moving from passport to passprot_bak
4ab8e52 head@{
  6}: checkout: moving from passprot_bak to passport
d185b35 head@{
  7}: commit: 添加邮件发送处理操作
............

这里显示了commit 的sha, version, message,找到你消失的commit,然后可以使用这个‘消失的’commit重新建立一个branch.

$git checkout -b branch-bak [commit-sha]

然后可以出来冲突,再git add, git commit, git push等操作,把修改提交。

最后,看看git help

name
       git-reflog - manage reflog information
synopsis
       git reflog  
description
       the command takes various subcommands, and different options depending on the subcommand:
           git reflog [show] [log-options] []
           git reflog expire [--expire=
网站地图