Получить текущее имя ветки для использования в команде git - программирование
Подтвердить что ты не робот

Получить текущее имя ветки для использования в команде git

Я иногда хочу использовать текущее имя ветки для использования в командах git. Например

git push origin feature/really-long-branch-name

Есть ли команда git, которая даст только название ветки, чтобы я мог сделать что-то вроде следующего?

git push origin current_branch

Существует git rev-parse --abbrev-ref HEAD, но это точно полезно в этом случае. Установка ветки по умолчанию не так уж полезна, так как имя ветки часто меняется. Изменение поведения по умолчанию git push не то, что я ищу, так как это все равно означает, что нужно сначала ввести полное имя ветки я push.

Edit:

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

4b9b3361

Ответ 1

Прочтите Символическую ссылку HEAD

Существует несколько способов получить имя текущей ветки. Самым каноническим является чтение символического ref для HEAD с использованием git -symbolic-ref (1). Например, если вы находитесь на главной ветке:

$ git symbolic-ref HEAD | sed 's!refs\/heads\/!!'
master

Используя Ref

Однако вы анализируете его, вы можете использовать символическое имя в другой команде, вызывая вашу оболочку замена команд. Например, в Bash:

$ git log -n1 $(git rev-parse --abbrev-ref HEAD)

Нет причин, по которым вы не могли бы использовать этот трюк с помощью push или других команд, если вы выберете.

Push.Default

Если вы заинтересованы только в том, чтобы отодвинуть текущую ветку к удаленной ветке с тем же именем и не разбирать ссылки по какой-либо другой причине, вам лучше использовать опцию Git push.default описанный здесь здесь и здесь. Например:

git config push.default current

Ответ 2

Использовать HEAD

В случае нажатия git вы можете использовать HEAD.

documentation утверждает

git push origin HEAD

Удобный способ нажатия текущей ветки на то же имя на пульте дистанционного управления.

Создайте псевдоним

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

В вашем ~/.bash_profile создайте этот псевдоним

alias current_branch="git rev-parse --abbrev-ref HEAD"

Затем вы можете использовать его в своих командах git, выполнив

git push origin `current_branch`