2014-10-02 2 views
0

Чтобы предотвратить создание нашей CI-системы при каждом фиксации, мы должны добавить [skip ci] в конце каждой фиксации (git commit -m "... [skip ci]").Git Alias: добавить строку для фиксации сообщения

Возможно ли сделать псевдоним для этого?

Я играл с:

[alias] 
    cms = !git commit -m "${1} \[skip ci\]" $1 
+0

Почему вы хотите _push_ (вы можете создать все, что вы хотите, CI можно строить только то, что вы толкаете в репозитории, он видит), которые не должны быть построены CI? –

+0

Главным образом предназначается для филиалов. Не хотите строить на каждом нажатии на ветку. –

+0

Но тогда он не будет построен, когда он закончит учиться. Попробуйте вместо этого настроить CI, чтобы он не строил все ветви, а только центральные ветви ('master',' develop', 'next' и т. Д. В зависимости от того, что у вас есть) и ветви, которые соответствуют некоторому шаблону. Затем вы можете нажать на нестроенную ветку для резервного копирования/совместного использования и встроенной ветви, если хотите, чтобы ваша версия все еще строилась во всех конфигурациях. Даже то же самое, если вы позже решите, что хотите его построить. –

ответ

2

Commit Message Hooks

Вместо псевдонима я считаю, побуждая пользователя с г/п, если они хотят, чтобы пропустить CI или не с крючка.

My bash mojo недостаточно хорош, чтобы узнать, возможно ли то, что вы пытаетесь выполнить, через Git Alias.

Действительно действительно примерный пример кода. Работает, но не распространяется на все случаи.

Put это в .git/Крючки/подготовить фиксации-сообщ и убедитесь, что он является исполняемым

#!/bin/sh 
exec < /dev/tty 
echo "Skip CI?" 
select yn in "Yes" "No" 
do 
    case ${yn} in 
     "Yes") 
     echo "[skip ci]" >> $1 
     break;; 
     "No") 
     break;; 
    esac 
done 

Это то, что происходит при запуске фиксации. Если вы наберете «2» для «нет», коммит пройдет нормально, если вы наберете «1», то он добавит ваше пропущенное сообщение ci. Правильное решение будет необходимо расширить, чтобы обращаться с вещами, как Merge совершает, совершает шаблоны и т.д.

(master)$ git commit -m "also junk" 
Skip CI? 
1) Yes 
2) No 
#? 1 
[master bfa5200] also junk [skip ci]] 
1 file changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 bar 
[email protected]:/scratch/commit_msg (master)$ git log 
commit bfa5200096f7251e2dc8fc457af81c59519901f3 
Author: Andrew C <[email protected]> 

    also junk 
    [skip ci] 
+0

Как вы это делаете? У вас есть пример кода? Возможно ли это с помощью Alias? –

+0

Спасибо за образец кода - он отлично работает. –

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