Git: Невозможно вернуть ветку обратно в локальную (не удалось найти удаленную ссылку) - PullRequest
0 голосов
/ 27 июня 2018

Я новичок в Git и действительно борюсь с этим. Недавно я создал новую ветку, проделал некоторую работу и отправил ее на GitHub, создав запрос на извлечение. Там нет проблем.

Однако, моя локальная среда разработки работ была обновлена, и я потерял все локальные ссылки на мои ветви. Мне нужно, чтобы моя работа вернулась на местный уровень, поэтому я продолжаю.

Из чтения онлайн я попробовал:

Воссоздание моей ветки:

git checkout -b 'name-of-branch-I-had-been-working-on'

Потяните ветку с пульта

git pull origin 'name-of-branch-I-had-been-working-on'

Затем я попытался удалить локальную ветку, которую создал выше (git branch -d), и попытался:

git fetch origin 'name-of-branch-I-had-been-working-on'

но в каждом случае я получаю ошибку:

fatal: Couldn't find remote ref name-of-branch-I-had-been-working-on

Кто-нибудь знает правильный способ сделать это?

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Из комментариев: Я: появляется ли ветка, которую вы хотите восстановить с удаленного компьютера, в списке, когда вы делаете git branch -r? Вы: да, это так.

С этого момента я бы: (при необходимости сначала спрятать все незафиксированные изменения)

# first delete the failed new branch
git branch -D local-branch-you-just-created-when-trying-to-solve-the-problem
# get all up-to-date remote references into your local repo
git fetch
# (optionnally) list all branches to be sure
git branch -a
# to avoid typos, copy-paste the line with your branch in your next checkout
# which will recreate a local version of said remote branch
git checkout name-of-the-branch-you-try-to-recover-from-remote

Примечание: когда все ветви перечислены (скажем, ваша ветвь называется "feature_A"), не

git checkout origin/feature_A

(который проверяет ветку remote-tracking ), но вместо этого просто

git checkout feature_A

для локального экземпляра.

0 голосов
/ 27 июня 2018

Я рекомендую вам выполнить следующее:
1. Откройте git bash в необходимом месте
2. Клонировать удаленное репо на локальный компьютер: git clone <repo_url>
3. Для того чтобы перечислить все удаленные филиалы: git branch -a
Зеленая линия обозначает ветвь, в которой вы находитесь. Красные, начинающиеся с удаленных элементов / - это возможные удаленные ветви, к которым можно перейти.
4. Оформить заказ на удаленный филиал: git checkout <branch_name>

Вот и все :) теперь работайте над веткой ... зафиксируйте ваши изменения и запустите изменения: git push origin <branch_name>

...