Как я могу найти подходящую удаленную ветку по имени? - PullRequest
0 голосов
/ 03 февраля 2020

Скажем, у меня есть локальная ветка test, которая отслеживает удаленную ветку remote/test. Затем в какой-то момент я удаляю местную ветку. Как мне найти подходящую удаленную ветку по имени 'test'?

PS Кажется, мне нужно нечто подобное тому, что git checkout [<branch>] делает для несуществующих локальных ветвей.

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

Использование git branch с параметрами -r и -l, по-видимому, дает желаемый результат:

git branch -r -l '*branch_name*'

Интересно, есть ли надежный способ разделения имени на части удаленного имени и имени ветви? хотя (учитывая, что удаленное имя может содержать косую черту).

0 голосов
/ 03 февраля 2020

Вы можете проверить коммит, на который указывает удаленная ветвь, с помощью

# let's find the remote branches with that name
git branch -r | grep test

# in the output, find your <wantedBranch>, then
git checkout <wantedBranch>

Это не извлечет саму ветвь, поскольку она является удаленной. Вместо этого вы войдете в отдельное состояние HEAD, и ваше рабочее дерево будет обновлено, чтобы отразить состояние этого коммита.

В качестве альтернативы, вы можете воссоздать локальную ветку, это может быть более удобным. Если ваша удаленная ветвь называется origin/test-branch, просто сделайте

git checkout test-branch

(без префикса origin)

Если вы не работаете над довольно старой (около 1.8, я Я уточню это, чтобы быть более точным) git версия, он автоматически обнаружит, что удаленная ветвь названа так же, и он создаст локальную ветвь, а затем установит свой восходящий поток на указанную удаленную ветвь.

...