mysterious vanishing branches in git

Here are some git actions I performed. As you can see, I made a new branch, modified my files, and then committed the changes. After changing back to another branch, hoping to merge, the branch I was just working on disappeared.

Does anyone know how I can recover the files from fixed_merge_branch? I’m freaking out!

  • Does Github auto backup our projects into globally spread mirrors, like SourceForge?
  • Git: How to forget very old commits
  • Using Git with a huge 200GB repository?
  • How to export/import the Jenkins configuration?
  • How to manage backups and monitor Git with a central repository?
  • Backup only “local” commits / objects in git repository
  • 1.9.2@whisperme$ git branch fixed_merge_conflict
    1.9.2@whisperme$ git checkout fixed_merge_conflict
    M   ArtworkViewController.h
    M   ArtworkViewController.m
    M   ArtworkViewController.xib
    M   Classes/DFRAppDelegate.h
    M   Classes/DFRAppDelegate.m
    M   Classes/WorkGalleryViewController.m
    M   Classes/WorkGalleryViewController.xib
    M   DFR.xcodeproj/project.pbxproj
    M   DFRViewController.xib
    M   Data.h
    M   Data.m
    M   MainWindow.xib
    M   cn.lproj/Localizable.strings
    M   en.lproj/Localizable.strings
    A   fr.lproj/Localizable.strings
    Switched to branch 'fixed_merge_conflict'
    1.9.2@whisperme$ git add .
    1.9.2@whisperme$ cd Classes/
    1.9.2@whisperme$ git add .
    1.9.2@whisperme$ cd ..
    1.9.2@whisperme$ git add -u
    1.9.2@whisperme$ git status
    # Not currently on any branch.
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #   modified:   ArtworkViewController.h
    #   modified:   ArtworkViewController.m
    #   modified:   ArtworkViewController.xib
    #   modified:   Classes/DFRAppDelegate.h
    #   modified:   Classes/DFRAppDelegate.m
    #   modified:   Classes/WorkGalleryViewController.m
    #   modified:   DFR.xcodeproj/project.pbxproj
    #   modified:   Data.h
    #   modified:   Data.m
    #   modified:   MainWindow.xib
    #   modified:   cn.lproj/Localizable.strings
    #   modified:   en.lproj/Localizable.strings
    #
    # Untracked files:
    #   (use "git add <file>..." to include in what will be committed)
    #
    #   fr.lproj/
    1.9.2@whisperme$ git commit -m "re-did changes lost by merge screw up"
    [detached HEAD 858491f] re-did changes lost by merge screw up
     12 files changed, 110 insertions(+), 50 deletions(-)
    1.9.2@whisperme$ git checkout develop
    Previous HEAD position was 858491f... re-did changes lost by merge screw up
    Switched to branch 'develop'
    1.9.2@whisperme$ git branch
      artwork_model
      artwork_model_localisation
      artwork_screen
    * develop
      logger
      master
      start_artwork_model
    1.9.2@whisperme$ git merge fixed_merge_conflict
    fatal: 'fixed_merge_conflict' does not point to a commit
    1.9.2@whisperme$ git checkout fixed_merge_conflict
    error: pathspec 'fixed_merge_conflict' did not match any file(s) known to git.
    1.9.2@whisperme$ git checkout fixed_merge_conflict
    error: pathspec 'fixed_merge_conflict' did not match any file(s) known to git.
    1.9.2@whisperme$ git branch
      artwork_model
      artwork_model_localisation
      artwork_screen
    * develop
      logger
      master
      start_artwork_model
    1.9.2@whisperme$ git checkout
    1.9.2@whisperme$ git branch
      artwork_model
      artwork_model_localisation
      artwork_screen
    * develop
      logger
      master
      start_artwork_model
    1.9.2@whisperme$ pwd
    /Users/tristan/Documents/DFR
    1.9.2@whisperme$ 
    

    Thanks a bunch!

  • Puppet Modules - Best Practices for Installing External Modules and Downloading Packages
  • Svn server is dead… can I still convert to Git?
  • Allow Github Organization to read repository
  • How to keep git from changing file ownership
  • Git index Hanging on To Old Submodule Path?
  • Difference between GIT and CVS
  • 2 Solutions collect form web for “mysterious vanishing branches in git”

    Well I don’t exactly see why the branch ‘disappeared’ but don’t worry, your files didn’t.

    You can find them by many means:

    • You can use the message printed by the git checkout when you left your anonymous branch: “Previous HEAD position was 858491f”.
    • You can use git reflog and find the commit of your files.

    Then you can run this to recreate the branch:

    git checkout 858491f -b fixed_merge_conflict
    

    and then you can do your merge:

    git checkout develop
    git merge fixed_merge_conflict
    

    Or you can do the merge in one step if you don’t care about the branch:

    git merge 858491f
    

    for some reason, you’re getting a detach head situation. I’m not entirely sure how that is caused in a regular git repo, but i’ve encountered it using git svn (and came up with my own solution here). It might be that the aren’t --tracking the upstream repo when you create a new branch. Usually when you get a detached head, when you do a git branch, you will see (asterisk) (no branch) (don’t know how to do a literal asterisk with markdown)

    Git Baby is a git and github fan, let's start git clone.