Git의 다른 브랜치에서 브랜치 생성

Azhar Bashir Khan 2022년8월23일
Git의 다른 브랜치에서 브랜치 생성

이 튜토리얼은 Git의 다른 브랜치에서 브랜치를 생성하는 방법을 알려줍니다.

분산 버전 제어 시스템인 Git은 협업 개발 환경에서 버전 관리에 적합한 도구입니다. Git에서는 리포지토리를 만들고 리포지토리에서는 다양한 개발 노력을 추적하기 위해 분기를 만듭니다.

우리는 종종 버그를 수정하거나 새로운 기능을 개발하기 위해 메인 라인에서 새 분기를 만듭니다. 작업을 완료한 후 일반적으로 릴리스를 위해 이 분기를 메인라인 분기에 다시 병합합니다.

Git은 다른 기존 브랜치에서 브랜치를 생성할 수 있는 기능을 제공합니다. 또한 Git 명령을 사용하여 분기를 병합할 수 있습니다.

git checkout 명령을 사용하여 Git의 다른 분기에서 분기 생성

분산 버전 제어 시스템인 Git은 프로젝트 저장소의 변경 사항을 추적하는 데 유용한 도구입니다.

공동 개발 환경에서 작업하기 위해 동일한 프로젝트 저장소를 사용하는 여러 팀 구성원 또는 팀이 있습니다. 다양한 팀 구성원 또는 팀이 기존 지점에서 다른 지점을 만들어 해당 지점에서 작업할 수 있습니다.

프로젝트 저장소에 main이라는 메인 라인 분기가 있다고 가정합니다. 버그 수정 팀은 해당 분기 위에 bugfixes라는 새 분기를 만듭니다. 다른 팀이나 팀 구성원은 새 기능을 개발하기 위해 기능 분기를 만들 것입니다.

팀이나 팀 구성원이 새 분기에서 수행된 변경 사항에 만족하면 새 분기는 종종 메인 라인 분기로 다시 병합됩니다.

기능 개발을 위해 메인 라인 브랜치 main에서 feature 브랜치를 생성한다고 가정합니다. 이를 위해 git checkout 명령을 사용할 수 있습니다.

기존 분기의 새 분기를 만드는 구문은 다음과 같습니다.

git checkout -b <new-branch> <existing-branch>

우리의 경우 다음 명령을 실행합니다.

$ git checkout -b feature main
Switched to a new branch 'feature'

따라서 기존 브랜치 main에서 새 브랜치 feature를 만들었습니다. git checkout 명령에 -b 옵션을 사용하면 새 분기가 생성됩니다. 또한 새 분기가 체크아웃되도록 합니다.

이제 새 기능을 개발하고 기능이라는 새 분기에서 변경합니다.

기능 개발을 완료하고 새 브랜치 feature에 대한 변경 사항을 커밋한 후 이 브랜치를 메인 라인 브랜치 main과 병합하고 싶습니다.

git merge 명령을 사용하여 feature 분기를 메인 라인 분기 main과 병합할 수 있습니다.

먼저 git checkout 명령을 사용하여 메인 라인 분기 main으로 전환합니다.

$ git checkout main
Switched to branch 'main'

git merge 명령을 사용하여 feature 분기를 main 분기와 병합합니다.

우리는 다음과 같이 명령을 실행할 것입니다.

$ git merge --no-ff feature
Updating ea1b23a..05e9201
(Summary of changes)

git merge 명령에 대한 --no-ff 옵션은 빨리 감기 병합이 수행되더라도 항상 새 커밋 개체를 생성하도록 강제합니다. 병합을 빨리 감기로 해결할 수 있는 경우에도 모든 경우에 병합 커밋을 생성합니다.

Git 기록을 탐색할 때 feature 분기의 존재에 대한 정보를 볼 수 있으므로 유용합니다. 또한 feature 분기의 모든 커밋을 그룹화합니다.

또한 feature 분기의 병합을 main 분기로 되돌리려는 경우 병합 커밋이 있기 때문에 더 쉽습니다.

빨리 감기 병합의 경우 병합 커밋이 생성되지 않습니다. 병합된 분기와 일치하도록 분기 포인터의 업데이트만 발생합니다.

마지막으로 변경 사항을 원격 저장소로 푸시해야 합니다.

$ git push origin main
$ git push origin feature

따라서 Git의 다른 브랜치에서 브랜치를 생성하는 방법을 보여주었습니다.

관련 문장 - Git Branch