Псевдонимы Git с условиями для применения

#git

#git

Вопрос:

Я создал простой псевдоним, который выполнит отправку в origin, а затем проверит ветку dev

это все

 origin-push = !git push origin amp;amp; git checkout develop
  

Я хотел бы добавить проверку для выполнения только if на главном сервере ветки, в противном случае просто отобразите простое сообщение. Как это сделать?

— Пользователь Windows—

Комментарии:

1. функция bash в вашем .bashrc (если bash доступен в вашем контексте, конечно)? Примечание о Windows: если вы используете Git для Windows, он включает в себя возможности bash.

Ответ №1:

  • То, что идет после ‘!’, является сценарием оболочки. Вы можете добавить все, что пожелаете, в этой командной строке.

  • Одним из способов просмотра названия вашей текущей ветки является : git rev-parse --abbrev-ref HEAD

Итак, что-то вроде :

 ! [ "$(git rev-parse --abbrev-ref HEAD)" = "master" ] amp;amp; ...
  

должно работать

полная команда (спасибо @ phd) :

 origin-push-master = ![ "$(git rev-parse --abbrev-ref HEAD)" = "master ] amp;amp;
    git push origin amp;amp; git checkout develop ||
        echo The current branch is not master >amp;2
  

Если это действие становится слишком сложным, чтобы быть простым однострочным, альтернативой простому псевдониму является :

создайте скрипт с именем git-origin-push , который должен быть доступен из вашего $PATH .

Комментарии:

1. Позвольте мне написать это полностью: origin-push-master = ![ "$(git rev-parse --abbrev-ref HEAD)" = "master ] amp;amp; git push origin amp;amp; git checkout develop || echo The current branch is not master >amp;2

2. @MCR : действительно, чего-то не хватало " . исправлено