情况,在一个游离的分支上提交了commit,然后checkout到某一分支,发现commit的内容找不到了。

解决办法:

1、通过 git reflog 查看所有分支的操作记录,找到那个commit id

2、切换到目标分支,例如 git checkout developer

3、通过 git cherry-pick {commit_id}把那个游离的commit 内容重新提交到当前分支上

记录一下这两个命令:

  • git reflog是Git操作的一道安全保障,它能够记录几乎所有本地仓库的改变,包括所有分支的commit提交,以及已经被删除的commit

  • git cherry-pick 将指定的commit提交到当前分支。(与merge类似,merge是合并一个分支的所有变更,cherry-pick 更加精确)