여러 git 브랜치 병합 자동화 gitmumerge

개요



여러 git 브랜치를 병합할 때의 모범 사례 의 투고로 소개한 타인의 수정을 지우지 않는 병합 방법 를 자동화하는 gitmumerge 라고 하는 쉘 스크립트를 소개한다.

gitmumerge



htps : // 기주 b. 코 m / 여기 아 마에 마에 / 기트 무메
cui의 git 클라이언트를 단순히 쉘 스크립트로 랩한 것이다. 평소 수동으로 여러 번 git merge하는 작업을 한 번의 명령으로 함께 자동으로 병합 할 수 있습니다.

운영 환경



현재 bash에만 대응하고 있다. bash가 움직이면 OS는 무엇이든 상관없다.
cui의 git 클라이언트는 필수이므로 미리 설치해 둔다.
(debian系)
sudo apt-get install git
(redhat系)
sudo yum install git

gitmumerge 설치.


git clone https://github.com/cocoa-maemae/gitmumerge ~/.gitmumerge 
echo 'export PATH="$HOME/.gitmumerge/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile

//バージョン確認
gitmumerge -v

사용법



우선 병합을 실행하고 싶은 git 리포지토리를 clone하고 clone 대상 디렉토리로 이동한다.
(例)
git clone <対象リポジトリへのパス>
cd <clone先ディレクトリ>

clone 대상 디렉토리로 이동하면 방금 설치한 gitmumerge의 차례.
-d(--destination-branch) 뒤에 개발에 사용한 브랜치를 병합하는 최종 브랜치명을, -c(--candidate-branches) 뒤에 개발에 사용한 브랜치명을 지정한다. -c 뒤에는 스페이스 구분으로 복수 브랜치의 지정이 가능하다.
예를 들어, Git 브랜치 병합 방법에 대한 고찰에 열거 된 예, master 브랜치에 dev1, dev2, dev3 브랜치를 병합하고 싶을 때는 다음과 같이 지정한다.
(例)
gitmumerge -d master -c dev1 dev2 dev3

이 예를 실행하면 master->dev1, dev1->master, master->dev2, dev2->master, master->dev3, dev3->master라는 순서로 병합해 준다. 병합하기 전에 반드시 [Y/n]을 듣도록 하고 있습니다. 충돌이 발생하면 그 시점에서 강제 종료한다.


종료 메시지의 "Merging branches has done"이 나오면 완료입니다. 어디까지나 git client측에서 병합하고 있을 뿐이므로, 리모트 리포지터리에 반영시키기 위해서는, 이 후 -d(--destination-branch)로 지정한 브랜치(상기의 예에서는 master)를 push할 필요가 있다. 거기는 지금까지 수동이다.

(예) 로컬 리포지토리의 master에 병합하고 나서 push까지의 흐름


또, 예에서는 master에 대해서 개발용의 dev1, dev2, dev3 브랜치를 병합했지만, 실제의 운용으로 master에 직접 개발 브랜치를 병합하고 있는 사람은 그다지 없다고 생각한다. 병합 실수로 master 브랜치를 파괴할 가능성이 있기 때문이다. master의 앞에 development등의 다른 브랜치에 한번 병합하는 것이 안전하다.

gitmumerge는 cui의 git 클라이언트 래퍼에서 로컬 저장소의 병합을 자동화하고 있습니다. 리모트 리포지토리는 GitHub,GitLab,BitBucket,GitBucket, etc... git계의 호스팅 서비스이면 무엇이든 대응할 수 있다.

좋은 웹페이지 즐겨찾기