Я напортачил локальную ветвь на своем компьютере, перезарядив ее на другую ветку. Я хотел переустановить, но я не переключился на ветку, которую я хотел переупаковать, и в результате я испортил somebranch
. Я понятия не имел, как отменить мою перезагрузку в somebranch
(если кто-нибудь знает, что было бы хорошо знать на будущее), поэтому я решил, что, поскольку у меня есть somebranch
на github, я бы просто удалил его локально, а затем вытащил его из github. Я не знаю, что я сделал, но я тоже это испортил. В конце концов я нашел то, что я считаю правильные команды, чтобы воссоздать удаленный местный филиал, потянув его из моего удаленного происхождения:
Ремонт git branch: refs теперь показывают refs/remotes/branch и refs/remotes/origin/branch
git fetch origin somebranch:refs/remotes/somebranch
git checkout -b somebranch --track origin/somebranch
В gitk я могу видеть, что есть три вещи, которые в настоящее время:
somebranch, пульты дистанционного управления/somebranch, пульты дистанционного управления/происхождение/somebranch
но все остальные мои ветви показывают только локальный и один пульт дистанционного управления. Пример:
someotherbranch, пульты дистанционного управления/происхождение/someotherbranch
Я побежал git for-each-ref
и оба реф/пультов ДУ/somebranch и реф/пультов ДУ/происхождение/точка somebranch к тому же совершить.
Мой вопрос в чем разница между этими двумя и как мне избавиться от ref/remotes/somebranch. Я попробовал git update-ref -d remotes/somebranch
, но это не сработало.
Спасибо большое, что работал. Когда я запускаю «git remote show origin», я вижу, что он говорит «Локальный филиал, настроенный для« git pull »: somebranch сливается с удаленным somebranch'. Но ни один из моих других филиалов не имеет записи для «git pull». Это нормально? – loop
Зависит от того, как вы их настроили для начала. Если вы хотите установить ветвь «вверх по течению», которая позволит «git pull», это должно помочь: http://stackoverflow.com/a/2286030/877115 – Christopher