Вопрос по git-branch, git – Команда для определения восходящего ref текущей HEAD?

8

я ищу то, что я надеюсь, этопростая однострочная команда определить правильный восходящий ref для текущей проверенной ветви?

по существучто-то вроде

git branch --remote HEAD

который (если это сработало) преобразовал бы символьный шаблон HEAD в имя текущей ветви, а затем параметр--remote затем изменяет его на ref ветки удаленного отслеживания. (Но это нене делай этого!)

Если у меня есть филиалmorehelp с конфигом

remote = origin
merge = refs/heads/morehelp

Простая командная строка вернетrefs/remotes/origin/morehelp что он's восходящая ветвь отслеживания (идеально подходит дляgit reset --hard  случай обновления путем перезаписи)

Ваш Ответ

1   ответ
15

Я думаю ты хочешь

git rev-parse --symbolic-full-name @{u}

@{u} это сокращение для восходящей ветви отслеживанияHEAD и вариант говоритrev-parse распечатать его в нужном вам формате, а не печатать идентификатор фиксации SHA.

Отgit help rev-parse

   --symbolic
       Usually the object names are output in SHA1 form (with possible ^ prefix); this option makes them output in a form as close to the original
       input as possible.

   --symbolic-full-name
       This is similar to --symbolic, but it omits input that are not refs (i.e. branch or tag names; or more explicitly disambiguating
       "heads/master" form, when you want to name the "master" branch when there is an unfortunately named tag "master"), and show them as full
       refnames (e.g. "refs/heads/master").
Такое ощущение, что должно быть что-то более очевидное ". но это Git, все действительно полезные команды очень неочевидны;) Jonathan Wakely
это выглядит бизнес. Я думал я'Я прошел мимо этого раньше, но пыталсяgit rev-parse --symbolic-full-name HEAD с какой-то удаленной опцией, которая нет работа. Это похоже на то, что должно быть более очевидным. (даже@{u} с этим'комментарийПропущенная ссылка по умолчанию соответствует текущей ветви.). " Philip Oakley
+100 (б ;-) за это. Я'я думал о добавлении--to-usptream вgit reset --hard  для моего сброса в исходный случай, когда я передаю одну из моих личных веток разработки между машинами через мой репозиторий Github. Теперь я могу создать псевдоним, используя вашу строку. Philip Oakley
по фактуgit reset --hard @{upstream} правильная команда, чтобы бросить одинs локальные коммиты и переход к последнему извлеченному коммиту ветви 'репо. Идеально подходит для передачи персональной перебазировки между машинами (например, Windows <-> Перевод Linux) Philip Oakley

Похожие вопросы