마스터 분기에서 커밋 방지
(간단하게 설명하자면) 저는master가지와 가dev내 깃 저장소에.나는 그것을 확실히 하기를 원합니다.master지점은 항상 작동하기 때문에 내가 하는 모든 일은 그 안에 있어야 합니다.dev분점.
하지만 내가 내 변경사항을 에 병합됩니다.--no-ff병합, 나는 머무르는 경향이 있습니다.master브랜치, 그리고 계속 작업하세요 (내가 내 것을 확인하는 것을 잊어버렸기 때문에)dev가지).
제가 규칙을 세울 수 있을까요?master브랜치, 커밋을 할 수 없다고 명시하고, 빨리 감기 합병을 하지만, 오직--no-ff다른 지점에서 합병되는 건가요?
이는 개인 호스팅된 리포지토리(GitHub 또는 Bitbucket이 아닌 ergo)에 대해 작동해야 합니다.
네, 가능합니다.마스터 분기에 대한 커밋을 거부하는 사전 커밋 후크를 만들어야 합니다.병합 명령을 호출할 때 Git는 사전 커밋 후크를 호출하지 않으므로 이 후크는 일반 커밋만 거부합니다.
저장소로 이동합니다.
다음 내용으로 .git/hooks/pre-commit 파일을 만듭니다.
#!/bin/sh branch="$(git rev-parse --abbrev-ref HEAD)" if [ "$branch" = "master" ]; then echo "You can't commit directly to master branch" exit 1 fi실행 가능(Windows에서는 필요 없음):
chmod +x .git/hooks/pre-commit
빨리 감기 병합을 사용하지 않도록 설정하려면 .git/config 파일에 다음 옵션을 추가해야 합니다.
[branch "master"]
mergeoptions = --no-ff
원격지의 마스터 브랜치도 보호하려면 다음 답변을 확인합니다.Git에서 마스터 브랜치에 대한 접근을 제한하는 방법
사전 커밋 유틸리티를 사용하여 이 작업을 수행할 수 있습니다.내장되어 있습니다.no-commit-to-branch하나 이상의 분기에 대한 커밋을 방지하는 데 사용할 수 있는 후크.
세우다
기본 설정 프로세스는 다음과 같습니다.
- pip 또는 Homebrew를 사용하여 설치(https://pre-commit.com/ #install에서 instruction)
- 만들기
.pre-commit-config.yaml프로젝트의 루트에 있는 파일(첫 번째 초안은 아래 참조) - 를 실행하여 Git 구성에 후크 설치
pre-commit install.
가지 보호를 위한 기본구성
여기에 단지 다음을 포함하는 기본적인 구성이 있습니다.no-commit-to-branch후크:
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.3.0
hooks:
- id: no-commit-to-branch
args: ['--branch', 'master']
여러 분기를 보호하려면 여러 분기 포함을 사용할 수 있습니다.--branch인수 목록의 인수:
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']
이게 다 오버킬 아닌가요?
사전 커밋에는 다른 많은 기본 제공 후크가 있으며 커밋을 정리하고 검증하는 방식을 변화시킬 커뮤니티에서 제공하는 많은 후크 컬렉션이 있습니다.제가 이를 언급하는 이유는 이 도구가 보호된 분기에 대한 커밋을 방지하는 데는 무리가 있을 수 있지만, Git 프로젝트에 대한 매력적이고 간단한 추가 기능을 제공하는 다른 많은 기능을 가지고 있기 때문입니다.
다음을 통해 전체적으로 설치하는 것이 타당할 수 있습니다.
git config --global core.hooksPath ~/githooks
그걸 옮기면서 말입니다pre-commit그 디렉토리에 파일을 저장합니다.
언급URL : https://stackoverflow.com/questions/40462111/prevent-commits-in-master-branch
'programing' 카테고리의 다른 글
| PowerShell - 고유 값 필터링 (0) | 2023.10.26 |
|---|---|
| 라디오 버튼의 색상을 어떻게 변경합니까? (0) | 2023.10.26 |
| angularjs: 강제 재rendering/ 지시 템플릿 전체 새로 고침 (0) | 2023.10.26 |
| C에서 MP3 파일을 재생하는 방법은? (0) | 2023.10.26 |
| 노드에서 글로벌 모듈을 가져오려면 어떻게 해야 합니까?"Error: Can't find module(오류: 모듈을 찾을 수 없음)"이라는 메시지가 표시됩니까 (0) | 2023.10.21 |