2016-05-03 2 views
3

В хранилище, где я наклоняю установить оба user.name и user.email конфигурации мне нужно скрипт коммит:Как проверить, если мерзавец совершить автор действует

commit -a --message "message" --author="author" 

сообщения и автор параметризованные.

Когда я совершаю с неправильным автора (не присутствует на rev-list и плохой отформатированный для мерзавца) я получаю:

со смертельным исходом: --author «плохо форматированный-автор» не «Name» и спички нет существующего автора

Есть ли способ проверить git, если автор действителен до совершения?

ответ

4

Использование git commit -a --message "message" --author="author" --dry-run.

Добавленный флаг --dry-run будет делать git commit, фактически не совершает ничего, но все равно выдает ненулевое значение, если указанная строка параметра --author недействительна.

Обратите внимание, однако, что могут быть другие причины, при которых статус выхода не равен нулю, например, фиксация является пустой (т. Е. Не имеет никаких изменений).

+0

Почему я об этом не думал? Отлично! –

2

Это действительно прямо в the documentation:

--author=author

            Override фиксации автора. Укажите явный автор, используя стандартный формат A U Thor <[email protected]>. В противном случае author считается шаблоном и используется для поиска существующего коммита этим автором (т. Е. rev-list --all -i --author=author); автор фиксации затем копируется с первой такой фиксации.

Вы даже скопировали их в свой вопрос:

нет на Rev-списка и плохо отформатированный для мерзавца

что означает, что это ваш ответ: проверить формат, чтобы увидеть, если он соответствует стилю Name <email>, а если нет, запустите git rev-list с указанными параметрами, чтобы увидеть, есть ли хотя бы одно сопоставление.

В общем, скорее всего, проще просто попытаться совершить и поймать сбой.

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

  • Нет связанных вопросов^_^