2017-01-18 2 views
1

Кто-то случайно удалил альфа-ветвь в моей команде.как восстановить удаленный филиал git?

У меня удаленный филиал изначальный/альфа. Я не могу найти эту ветвь origin/alpha, используя git ls-remote.

Я знаю, что последнее, что я сделал, было XYZ на происхождении/альфа-ветке. У меня есть SHA этой ветви.

Я пытаюсь создать новую ветку, используя эту SHA. Я использовал git checkout 45430f8834b0ebda6e89668cc4a4ba3f6a2067a4.

после того, как я попытался проверить новую ветку с помощью GIT проверку -b [new_branch]

Я пытаюсь мерзавец тянуть эту отрасль. но я получаю ошибку ниже

There is no tracking information for the current branch. 
Please specify which branch you want to merge with. 
See git-pull(1) for details. 

git pull <remote> <branch> 

If you wish to set tracking information for this branch you can do so with: 

git branch --set-upstream-to=origin/<branch> alpha_recovered 

Любая идея, как я могу восстановить мой удаленный филиал, который я не могу видеть в GIT LS-удаленных.

+0

Вы должны либо запустить 'GIT оформления заказа -b' в первую очередь, или ветвь с' мерзавцем branch'. – 0andriy

+0

Я уже назвал его, но после его именования ... если я делаю git pull, я становлюсь ниже ошибки. – Samir

+0

Да, вы должны связать свою локальную ветку с удаленной. последняя строка в цитированном тексте показывает, что вам нужно. – 0andriy

ответ

4

Поскольку вы отслеживали ветку, просто нажмите что:

git push origin origin/alpha:refs/heads/alpha 

Странный синтаксис необходим, потому что эвристика PUSH для заполнения орфографии refnames является ... может быть, просто соответствующим осторожным гадать, что вы хотели для удаленного репо. Я нахожусь на заборе об этом, но независимо от того, origin/alpha решает ваш репо refs/remotes/origin/alpha ref, обычный рефлектор отслеживания для refs/heads/alpha источника, но нажатие не настроено, чтобы сбросить удаленную ветку на что-то необычное, как легко вещь которую нужно сделать. Достаточно справедливо, я полагаю, поскольку это не обычная операция, поэтому, возможно, лучше всего, чтобы она полностью заполняла целевую ссылку на пульте дистанционного управления.

редактирование: поскольку у вас есть ша, вы можете также

git push origin 45430f8834b0ebda6e89668cc4a4ba3f6a2067a4:refs/heads/alpha 
+2

Обратите внимание, что если ваша собственная 'origin/alpha' разрешается до' 45430f8 ... ', обе команды будут делать то же самое. Помимо кучи магии специального случая (поиск автоматического названия ветки или тега), 'git push : ' и 'git push : ' означает то же самое. – torek

Смежные вопросы