мерзавец ветка испортила - PullRequest
1 голос
/ 08 августа 2011

У меня возникла серьезная проблема с моим git-хранилищем.У меня было 2 ветки ранее, и я написал коды прошлой ночью и забыл нажать на github.Этим утром я использовал другую машину и попытался разветвить новую ветку и нажать их вверх (коды хранятся в dropbox, поэтому не имеет значения, какую машину я использую), а затем git дал мне сообщение об ошибке: «Отказано в доступе».Затем я понял, что я не использую свой labtop, поэтому я открыл свой labtop и попытался войти в ветку, которую я только что создал.Но потом кажется, что я не могу этого сделать, и что еще хуже, все коды, которые я зафиксировал на другой машине, исчезли!Я использую git branch, чтобы увидеть список ветвей, и теперь он выглядит так:

centeredForm (shang's conflicted copy 2011-08-08)
* centeredform
  master
  refinement

, где первая "centeredForm" - это ветвь, которую я создал на другом компьютере, а "centeredform" - это ветвь, которую я создалмой лабтоп потом.Мои коды исчезли?Или есть способ восстановить прежний статус?

Ответы [ 2 ]

6 голосов
/ 08 августа 2011

Если оно было зафиксировано, то оно не потеряно. Там всегда история:

git reflog

Затем вы можете получить SHA вашего последнего коммита и отменить любой беспорядок:

git reset --hard <SHA>

ВАЖНО : Сначала резервируйте все. reset --hard удалит все незафиксированные изменения.

0 голосов
/ 08 августа 2011

Чтобы увидеть, есть ли коммит, и Dropbox не «потерял» его. Используйте git rev-parse branchYouLost. Это будет искать фиксацию для этой ветви.

Чем git cat-file -t SHA_above_command_gave_you

Судя по вашему сообщению об ошибке, я предполагаю, что это скажет вам, что это недопустимый объект. В этом случае может показаться, что Dropbox потерял верхушку вашей ветви.

Другой вариант, чтобы попытаться найти потерянные коммиты, - использовать git reflog и посмотреть, содержит ли один из них коммит, который вы хотите. Вы можете использовать git cat-file -p HEAD@{n}, чтобы получить сообщение журнала и посмотреть, пропало ли оно.

...