После фиксации моей последней работы над новой веткой branchname
в моем локальном репозитории git на машине A я переместил эту работу в свое удаленное репозиторий gitlab с помощью
$ git push origin branchname
Ветка master
уже была синхронизирована с удаленным репо. Все ветки появились в удаленном репо в моем списке gitlab.
Позже я перешел к машине B. Сначала я сделал
$ git pull origin master
и мастер был обновлен, но моя новая branchname
не появлялась, когда я набирал git branch
, и не существовало другой ветки, которую я создал, в дереве истории. Я перешел к этому post и следовал указаниям из первого ответа. Другая «ветка git» по-прежнему не показывала другие мои ветки. По прихоти я просто попытался сделать
$ git checkout branchname
и это было там и проверено нормально. Затем команда git branch
показала мастер и имя ветки в моем списке веток. Я сделал то же самое с другой веткой, и она тоже появилась в списке веток после команды git branch
.
Это нормальное поведение git для таких операций? Главное, что мне интересно, это то, что если вы извлекаете или извлекаете из удаленного репо, чтобы обновить локальное репо, которое должно было знать предыдущие знания о ветках на удаленном компьютере, почему они не отображаются во время команды git branch
? И почему я могу их проверить, если я не мог их увидеть после git branch
?
Эта сага похожа на THIS, но моя ветки на самом деле были там и просто НЕ отображали следующие команды ветки git, пока я их не проверил.
git branch -a
показывает как удаленные, так и локальные ветки, аgit branch
показывает только локальную ветку. На машине Bbranchname
не существует как локальная ветвь перед командойgit checkout branchname
. - person Sajib Khan   schedule 06.10.2017