분기로 Git 덮어쓰기 마스터

Abdul Jabbar 2022년5월31일
분기로 Git 덮어쓰기 마스터

Git은 우리가 사용하는 소스 코드를 추적하는 데 사용됩니다. 또한 협업을 촉진하고 프로젝트를 현재 상태로 유지하는 데 도움이 됩니다.

우리가 새로운 기능을 개발할 때 모든 응용 프로그램이나 문서를 개발하는 데 매우 도움이 되기 때문에 해당 기능의 이력이 우리 손끝에 있어야 합니다.

분기로 Git 덮어쓰기 마스터

Git에는 한 분기에서 다른 분기로 변경 사항을 혼합하는 두 가지 방법이 있습니다. 하나는 rebased이고 다른 하나는 분기와 함께 다른 저장소 분기로 병합됩니다.

이 기사에서는 Git의 master 브랜치를 다른 저장소 브랜치에서 완전히 병합하는 방법에 대해 설명합니다.

Git 워크플로를 사용하는 동안 코드에 대한 변경 사항은 애플리케이션 작업이 완료될 때 master 분기에서 최종적으로 종료되어야 합니다.

또한 아직 프로덕션 배포에 사용할 준비가 되지 않은 코드 변경 사항을 보유하고 있으며 조직 요구 사항 및 규칙에 따라 이 브랜치를 dev로 명명한 다른 분기가 개발되어 있을 수 있음을 이해해야 합니다.

어떤 경우에는 dev 브랜치를 너무 많이 변경한 후 dev 브랜치를 master 브랜치와 결합하는 데 어려움을 겪습니다. 쉽게 수행할 수 없습니다.

이 바쁜 상황을 극복하는 한 가지 방법은 master 브랜치를 dev 브랜치로 완전히 대체하는 것입니다. 아래에 설명된 두 가지 방법으로 이를 수행할 수 있습니다.

Our로 전략 병합

이 전략을 수행하기 위해 먼저 다음 명령을 실행하여 ours 병합 전략의 도움으로 dev 분기를 master 분기로 병합합니다. 이는 다음과 같습니다.

git checkout dev
git merge -s ours master
git checkout master
git merge dev

병합에서 --strategy=ours 옵션은 기능 분기의 이전 기록을 대체하기 위한 것입니다. 이제 masterdev의 모든 내용을 가지며 master의 모든 변경 사항을 무시합니다.

이 방법을 적용하면 깨끗하고 안전한 병합 커밋을 얻을 수 있습니다. 이 분기를 사용하는 다른 개발자도 기능 분기를 병합하는 데 문제가 발생하지 않으므로 이 병합의 이점을 누릴 수 있습니다.

반면에 이 방법의 단점은 dev 분기와 master 분기가 프로젝트에서 더 큰 규모로 방출된 경우 이 병합이 작동하지 않을 수 있다는 것입니다.

포스 푸싱

다른 옵션은 dev 분기를 다른 이름으로 강제로 푸시하는 것이지만 이 방법은 위에서 논의한 문제에서 야만적입니다.

git push -f origin dev: master

명령에 언급된 별칭 -f 플래그의 도움으로 이전 분기 master는 기록을 포함하여 dev 분기로 완전히 덮어씁니다.

위의 방법을 적용하는 동안 저장소의 dev 브랜치에서도 사용할 수 없는 master 브랜치에 있는 모든 커밋이 제거되므로 매우 주의해야 합니다.

작가: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

관련 문장 - Git Branch