2015-11-12 3 views
2

Я пытаюсь выяснить, как проверить, что пользователь находится на правильной ветке, прежде чем запускать некоторые команды в моем BAT-файле.Как проверить текущую ветку git в файле Windows BAT

Что лучший способ для выполнения такого рода проверки ...

IF (on "master" git branch) THEN 
    ... 
ELSE 
    ... 

ответ

3

Вы можете определить, какую отрасль вы находитесь, используя команду git branch поэтому мы будем использовать вывод, что для нашей проверки. Звездочка будет отмечать текущую ветвь, например, так:

D:\>git branch 
    master 
* staging 

Мы можем трубы этот выход к команде find, а затем к IF заявление:

git branch | find "* master" > NUL & IF ERRORLEVEL 1 (
    ECHO I am NOT on master 
) ELSE (
    ECHO I am on master 
) 

> NUL просто заглушает выход find ,
find вызовет ERRORLEVEL 1, если он не может найти строку в любом месте на выходе.

+1

Это также будет работать, если ваша ветка называется «master_notreally» ... – mrexodia

+0

Ooh good tip @mrexodia. Хорошие технологии именования филиалов позволят избежать этого, но мне интересно, есть ли способ удовлетворить эти крайние случаи. –

+0

Я хотел использовать это, чтобы определить, является ли что-то запросом на перенос на моем сервере сборки, чтобы вызвать специальный процесс сборки без подписания и т. Д. Этот случай использования может быть распространенным я предупредил людей об этом эксплоите :) – mrexodia

Смежные вопросы