Автоматически создавать ветку, если в другой ветке до коммита с git

У меня есть ветка, допустим master, у меня нет master толчки ограничены. Есть ли способ заставить его сказать, что если коммит случайно сделан на master ветка (или другая ветка), что новая ветка создается автоматически и коммиты там есть?

Пример рабочего процесса:

  1. Клон репо master ветка.
  2. Вносит много изменений
  3. Есть ли git commit -am ...

Я хочу подключиться к #3 и создать новую ветку, если человек совершает master (или какая-то другая "помеченная" ветка).

Если это невозможно, просто блокировать коммиты в master?

1 ответ

Решение

Я смог сделать это, создав pre-commit крюк:

#!/bin/bash
PROTECTEDBRANCH="master"

CURRENTBRANCH=$(git rev-parse --abbrev-ref HEAD)

if [ "$PROTECTEDBRANCH" == "$CURRENTBRANCH" ]; then
    RANDOMBRANCH=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)

    git checkout -b $RANDOMBRANCH
fi

Я сохранил это в .git/hooks/pre-commit; это работает как ожидалось.

Другие вопросы по тегам