W tym celu możesz użyć narzędzia pre-commit . Ma wbudowanyno-commit-to-branch
zaczepienia, którego można użyć do zapobiegania zatwierdzeniom do jednej lub więcej gałęzi.
Ustawiać
Podstawowy proces konfiguracji to:
- Zainstaluj za pomocą pip lub brew (instrukcje na https://pre-commit.com/#install )
- Stwórz
.pre-commit-config.yaml
plik w katalogu głównym projektu (zobacz poniżej pierwszą wersję roboczą)
- Zainstaluj zaczepy w konfiguracji git, uruchamiając
pre-commit install
.
Podstawowa konfiguracja do ochrony gałęzi
Oto podstawowa konfiguracja, która zawiera tylko no-commit-to-branch
hook:
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.3.0
hooks:
- id: no-commit-to-branch
args: ['--branch', 'master']
Jeśli chcesz chronić wiele gałęzi, możesz użyć wielu --branch
argumentów na liście argumentów:
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.3.0
hooks:
- id: no-commit-to-branch
args: ['--branch', 'master', '--branch', 'staging']
Czy to nie przesada?
Wstępne zatwierdzenie ma wiele innych wbudowanych punktów zaczepienia i dużą kolekcję utworzonych przez społeczność punktów zaczepienia, które zmienią sposób czyszczenia i sprawdzania poprawności zatwierdzeń. Powodem, dla którego o tym wspominam, jest to, że chociaż to narzędzie może być przesadą, ponieważ po prostu zapobiega zatwierdzeniom w chronionej gałęzi, ma wiele innych funkcji, które sprawiają, że jest atrakcyjnym i prostym dodatkiem do każdego projektu git.
git commit
tworzy nowe, nie ma przewijania do przodu. Wygląda na to, że chcesz po prostu zabronić zwykłych zatwierdzeń, gdy bieżąca gałąź jestmaster
, w takim przypadku, zagląda dopre-commit
zaczepu.