警告: 您将留下1个提交,未连接到任何分支

EGit 又来了。我犯了一个错误,试图切换到 EGit 中的另一个分支,但不知怎么搞的一团糟,没有检查出任何分支。然后我对这个非分支做了一个承诺,然后当我意识到我没有跟踪正确的分支时,我运行了以下命令:

$ git checkout issue2
Warning: you are leaving 1 commit behind, not connected to any of your branches:


bada553d My commit message


If you want to keep them by creating a new branch, this may be a good time to do so with:


git branch new_branch_name ....


Branch issue2 set up to track remote branch issue2 from origin.
Switched to a new branch issue2.

既然我已经搞砸了,那么如何将该提交与当前分支关联?我对创建一个全新的分支不感兴趣,我只是想把这个提交放到我的分支 issue2中。

45445 次浏览

你可以 git cherry-pick bada553d,如果它只是一个提交。

您也可以通过使用 reflog 来引用您到过的任何地方:

git reflog

然后使用其中一个提交:

git checkout -b temp HEAD@{3}

签出并从当前提交的位置创建一个临时分支。这是你曾经去过的地方的面包屑。

你也可以在使用 git reflog之后将标签应用到你的提交中,这样你就知道了提交的散列:

 Git tag <tag's_name>  <commit's_hash>/HEAD@{<commit's_num>}

如果只想将该提交与当前分支关联,那么可以简单地这样做

  1. 运行此命令以创建具有该提交的新分支

    git branch temp {commit's SHA}

  2. 然后简单地将此提交与当前分支合并

    git merge temp

  3. 现在只需删除我们创建的临时新分支

    git branch -d temp