기록

[기록/Git] 깃 브랜치(git branch) 개념 및 사용 방법

수빈2022 2024. 9. 2. 23:43

들어가기 앞서..

 

해당 포스팅은 썸머워즈 님의 포스팅을 참고해서 진행했습니다.

*참고: [GIT] 깃(Git) 브랜치(Branch) 사용하기 (ft. 조회/생성/이동/삭제/병합) (tistory.com)

 

[GIT] 깃(Git) 브랜치(Branch) 사용하기 (ft. 조회/생성/이동/삭제/병합)

git branch git을 사용하게 되면 가장 많이 듣는 게 브랜치라고 생각된다. 쉽게 설명하자면 코드를 통째로 복사하고 나서 원래 코드와는 상관없이, 독립적으로 개발을 진행할 수 있게 도와주는게 브

mine-it-record.tistory.com

 

제가 이해한 대로 정리한 거라 틀린 게 있다면 댓글로 피드백 부탁드립니다. :)


목차


    우선 git 명령어를 수행하기에 앞서, git 명령어를 사용할 수 있는 디렉토리로 이동해야 된다.

    git clone한 프로젝트(.git이 있는 폴더)를 C 아래에 두었기 때문에, git bash를 실행한 다음 해당 위치로 이동한다.


    ■ git branch: 현재 브랜치 조회하기

    git branch 명령어를 통해 로컬에서 현재 브랜치의 위치를 확인할 수 있다. 별도의 브랜치를 관리하지 않은 사용자라면 main 또는 master만 보이며 해당 이름 옆에 *(Asterick)가 표시되어져 있다. * 표시가 있는 브랜치가 로컬에서의 현재 브랜치다.

    git branch -a 명령어를 사용하면, 로컬과 원격저장소의 모든 브랜치가 나온다.

    다른 명령어가 궁금하면 git branch -h를 실행하면 된다.


    ■ git branch [브랜치명]: 브랜치 생성하기

    git branch [브랜치명]을 이용하면, 브랜치를 만들 수 있다. 소스를 수정한 버전을 따로 관리하기 위해 patch202409-1.0이라는 이름의 브랜치를 만든다.


    ■ git switch: 브랜치 이동하기

    새로 만든 브랜치에서 소스를 관리하기 위해 git switch [브랜치명] 명령어를 통해 브랜치의 위치를 이동시킨다. git branch -a를 실행시키면 현재 위치가 main에서 patch202409-1.0로 이동한 것을 알 수 있다.


    ■ (개념설명) HEAD란?

    git log -1 명령어는 가장 최신 1건의 깃 로그를 보여주는 명령어다. 해당 명령어를 통해 브랜치가 HEAD에 붙은 것을 확인할 수 있다.

     

    헤드는, 깃에서 체크아웃된 브랜치를 가리키는 일종의 포인터다. (체크아웃됐다는 말은, 소스를 수정해서 원격 저장소에 커밋할 수 있는 상태를 의미한다.) 이전까지 브랜치를 생성하지 않았기 때문에 최상위 브랜치인 main 브랜치에서 소스를 수정하고 커밋했을 것이다. 따라서 지금까지 HEAD는 main을 가리키고 있었다.

     

    하지만, 위에서 patch202409-1.0 브랜치를 생성했고 해당 브랜치로 switch(이동)했다. 그렇기 때문에 patch202409-1.0 브랜치에서 소스를 수정, 커밋할 수 있게 되면서 HEAD는 이 브랜치를 가리키는 상태가 되었다.


    ■ git branch [브랜치명] [커밋해시값]: 특정 커밋에서 브랜치 생성하기

    만약, 다른 커밋 지점에서 브랜치를 분기하고 싶다면, git branch [브랜치명] [커밋해시값]명령어를 사용하면 된다. 아래 그림과 같이, 해당 커밋 위치에서 브렌치가 생성될 것이다.


    patch00 브랜치에서 소스를 수정하고 싶다면, 해당 브랜치를 HEAD로 가리키면 된다. HEAD로 가리키기 위해선 git switch 명령어를 이용하면 된다.

    커밋 메시지를 통해 HEAD가 patch00을 가리킨다는 것을 정확히 알 수 있다.


    ■ git branch -d [브랜치명]: 브랜치 삭제하기

    -d 또는 -D 옵션을 이용해서 브랜치를 삭제할 수 있다. 두 옵션의 차이는 다음과 같다.

    • -d: 오류가 발생할 경우 삭제 진행 중단
    • -D: 오류를 무시하고 삭제 진행

    아래처럼 -D 옵션은 시스템 오류까지 무시할 수는 없지만 불상사를 피하기 위해 -d 사용을 권장한다.

     

    앞서 확인한 것처럼, 현재 브랜치를 삭제하기 위해선 브랜치를 이동하는 게 선행되어야 한다. 그 후, git branch -d 명령어를 통해 브랜치 삭제를 진행하면 된다.


     git merge 또는 git rebase: 브랜치 병합하기

    병합은 다음에 필요할 때 다시 포스팅할 예정이다.


    감사합니다. :)