분기로 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
옵션은 기능 분기의 이전 기록을 대체하기 위한 것입니다. 이제 master
는 dev
의 모든 내용을 가지며 master
의 모든 변경 사항을 무시합니다.
이 방법을 적용하면 깨끗하고 안전한 병합 커밋을 얻을 수 있습니다. 이 분기를 사용하는 다른 개발자도 기능 분기를 병합하는 데 문제가 발생하지 않으므로 이 병합의 이점을 누릴 수 있습니다.
반면에 이 방법의 단점은 dev
분기와 master
분기가 프로젝트에서 더 큰 규모로 방출된 경우 이 병합이 작동하지 않을 수 있다는 것입니다.
포스 푸싱
다른 옵션은 dev
분기를 다른 이름으로 강제로 푸시하는 것이지만 이 방법은 위에서 논의한 문제에서 야만적입니다.
git push -f origin dev: master
명령에 언급된 별칭 -f
플래그의 도움으로 이전 분기 master
는 기록을 포함하여 dev
분기로 완전히 덮어씁니다.
위의 방법을 적용하는 동안 저장소의 dev
브랜치에서도 사용할 수 없는 master
브랜치에 있는 모든 커밋이 제거되므로 매우 주의해야 합니다.
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