таинственные исчезающие ветки в мерзавце - PullRequest
3 голосов
/ 20 января 2011

Вот несколько мерзавцев, которые я выполнил.Как видите, я создал новую ветку, изменил свои файлы, а затем зафиксировал изменения.После перехода обратно в другую ветку в надежде на слияние исчезла ветка, над которой я только что работал.

Кто-нибудь знает, как я могу восстановить файлы из fixed_merge_branch?Я волнуюсь!

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$ 

Спасибо большое!

Ответы [ 2 ]

8 голосов
/ 20 января 2011

Ну, я не совсем понимаю, почему ветка «исчезла», но не волнуйтесь, ваши файлы не исчезли.

Вы можете найти их многими способами:

  • Вы можете использовать сообщение, напечатанное git checkout при выходе из анонимной ветви: «Предыдущая позиция HEAD была 858491f».
  • Вы можете использовать git reflog и найти коммит ваших файлов.

Затем вы можете запустить это, чтобы воссоздать ветвь:

git checkout 858491f -b fixed_merge_conflict

, а затем вы можете сделать свое слияние:

git checkout develop
git merge fixed_merge_conflict

Или вы можете сделать слияние в одномшаг, если вас не волнует ветка:

git merge 858491f
0 голосов
/ 20 января 2011

по какой-то причине вы получаете detach head ситуацию . Я не совсем уверен, как это вызывается в обычном git-репо, но я столкнулся с этим с помощью git svn ( и придумал здесь собственное решение ). Возможно, вы не --track выполняете репозиторий в восходящем направлении при создании новой ветви. Обычно, когда вы получаете detached head, когда вы делаете git branch, вы видите (asterisk) (no branch) (не знаю, как сделать буквальную звездочку с уценкой)

...