ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Git 에서 branch 활용하기
    Android 2024. 3. 12. 23:15

    터미널(Git bash)에서 브랜치 활용하기

    기존 파일을 수정하고 싶지만, 건드리지 않고 복사본을 만들어서 수정하고 싶을 때가 있습니다. 이때 활용하는게 바로 브랜치이다. 즉, 원본 파일의 복사본 = 브랜치 이다. 복사본은 여러 개 만들 수 있기 때문에 브랜치도 여러 개 생성 가능하다. 브랜치 이동 명령어의 경우 두 개의 명령어가 존재하는데, 둘 중 아무거나 써도 상관없다. 원래 checkout 명령어를 썼지만 의미가 직관적이지 않아 최근에 switch 명령어가 생성되었다고 한다. 

    정의 명령어
    브랜치 생성명령어 git branch 브랜치이름
    브랜치 확인 명령어 git branch
    브랜치 이동 명령어 git switch 브랜치 이름 / git checkout 브랜치 이름
    브랜치 생성 및 이동 명령어 git switch -c 브랜치 이름 / git checkout -b 브랜치 이름
    터미널에서 창 빠져나가기 키보드 q

     

    새로운 브랜치를 생성하고 나면, 복사본처럼 내부에서 수정이 가능하다. 수정한 후에는 꼭 git add 와 git commit 을 해서 저장해줘야 한다.

     

    그렇게 복사본 브랜치에서 마음껏 수정을 마친 후, 이제 원본 브랜치(main)를 건드려도 되는 시점이 올 수 있다. (원본 파일을 복사본으로 덮어쓰기 하는 것이다.) 이때, 필요한 명령어가 있다.

    브랜치 합치는 명령어
    1. git switch 최종브랜치이름
    2. git merge 합칠브랜치이름

     

    이렇게 두가지 명령어를 실행하게 되면, main 브랜치의 원본 내용이 전에 수정했던 내용으로 완전히 바뀌어 있는걸 확인할 수 있다. 이때는 원본 브랜치와 복사본 브랜치의 내용이 아예 같기 때문에, 복사본 브랜치를 삭제해도 된다. 

     

    로컬에서 merge 를 하다가 "cannot switch branch while merging" 이라는 오류가 뜬 적이 있다. 이때 "git merge --quit" 명령어를 입력했더니 오류가 해결되었다.

     

    Pull Request : 깃허브에서 merge 하기 

     

    근데 사실, 새로운 브랜치를 생성하고 작업 및 수정하는 경우는 터미널에서 진행할 수 있지만, main 브랜치로의 병합은 터미널에서 잘 진행하지 않고 깃허브 자체에서 수행한다. 일단, Pull Request 의 의미를 짚고 넘어가자.

    Pull : (서브 브랜치에서 수정한 내 코드를) 잡아당기다
    Request : 내 코드를 메인 브랜치에 합치는 것을 요청하다

     

    즉, Pull Request 는 "내가 수정한 코드를 원본 파일에 덮어쓰기 해도 될까?" 의 의미이다!

     

    해당 Pull Request 과정은 로컬에서 생성한 복사본 브랜치를 git push 를 통해 깃허브에 업로드 하고나서 진행한다. 깃허브에 복사본 브랜치가 업로드 되면 초록색 박스로 Compare & pull request 버튼이 뜬다. 해당 버튼을 누른 후 merge 과정을 진행하면 된다.

     

    원격(깃허브)에서 브랜치끼리 merge 를 하고 난 후, 로컬에 돌아오면 main 브랜치에 해당 사항이 반영이 안되있는 것을 확인할 수 있다. 이때는 git pull origin main 을 해서 원격에서 로컬로 코드를 가져오면 된다.

     

    결론 : merge 과정은 터미널(로컬) 이 아닌 원격에서 진행하고, 원격에서 로컬로 코드를 가져오는 식으로 해야한다!


    참고자료

Designed by Tistory.