77

EGit strikes again. I made the mistake of trying to switch to a different branch in EGit and it somehow messed up and checked out no branch. I then made a commit to this non-branch, and then when I realized I wasn't tracking the right branch, I ran the following:

$ 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. 

Now that I've botched things, how do I associate that commit with my current branch? I'm not interested in creating a brand new branch, I just want to pull that commit into my branch, issue2.

Adam Dymitruk
  • 117,004
  • 25
  • 140
  • 137
Naftuli Kay
  • 82,570
  • 85
  • 256
  • 387

3 Answers3

129

you can git cherry-pick bada553d if it's just the one commit.

You can also reference anywhere you've been by using the reflog:

git reflog

then use one of those commits:

git checkout -b temp HEAD@{3}

to checkout and make a branch temp from where your current commit was 3 "times" ago. It's a bread crumb of where you used to be.

Adam Dymitruk
  • 117,004
  • 25
  • 140
  • 137
2

If you just want to associate that commit with your current branch, you can simply do this

  1. Run this command to create a new branch with that commit

    git branch temp {commit's SHA}

  2. Then simply merge this commit with your current branch

    git merge temp

  3. Now just delete the temporary new branch we created

    git branch -d temp

0

Also you can just apply tag to your commit after using git reflog when you'll know commit's hash:

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