원격 브랜치의 이해
Git을 사용한 협업에서 서버 저장소에 대해 알아보았습니다.
우리는 브랜치를 공부하면서 브랜치를 만들고 병합하는 등의 작업을 통해 브랜치 운용을 어떻게 할 수 있는지 학습했습니다.
Git으로 버전 관리를 하면서 master 브랜치는 안정적인 코드를 유지하는 브랜치로 하고 추가 작업을 진행할 때는 브랜치를 생성해 작업해서 배포 시 master 브랜치로 병합하는 방식으로 하는 것이 보통입니다.
이와 같이 브랜치 작업도 원격 브랜치를 두고 협업을 할 수 있습니다.
로컬 저장소의 서버(원격) 저장소로 GitHub를 사용했듯이 서버(원격) 저장소에도 브랜치를 생성할 수 있으며, 서버(원격) 저장소에 생성한 브랜치를 원격 브랜치라고 합니다.
로컬에 Git 저장소를 만들었다고 서버에 저장소가 자동으로 생성되는 것이 아닌 것처럼, 브랜치 또한 로컬에 브랜치를 만들었다고 해서 서버에 브랜치가 자동으로 생성되는 것은 아닙니다. 앞서 push/pull 등의 명령으로 서버와 로컬을 동기화했던 것처럼 브랜치도 동기화를 위한 실행을 해줘야 합니다.
우리는 이미 원격 브랜치에 대한 학습을 마쳤습니다.
저장소를 생성하고 서버(원격) 저장소와 연결 후 push 를 통해 master 브랜치의 커밋 정보를 서버(원격) 저장소와 동기화한 것도 사실은 master라는 브랜치에 대한 원격 브랜치입니다.
따라서, 로컬 브랜치에 대해서도 지금까지 학습한 내용을 바탕으로 브랜치를 전송하고 내려 받는 등의 동기화 작업을 할 수 있습니다.
실습을 통해 확인해 보겠습니다.
먼저, 로컬 저장소에 hotfix라는 브랜치를 생성하겠습니다.
hotfix 브랜치를 생성하고 로컬 저장소의 브랜치 목록을 확인해 생성되었음을 재확인하였습니다.
이제 hotfix 브랜치를 서버(원격) 저장소로 전송(push) 합니다. 그 실행 화면이 다음과 같습니다.
정상적으로 전송되었고, 원격 브랜치가 생성되었음을 알 수 있습니다.
Github로 가서 저장소 페이지를 확인해 보면 다음과 같이 브랜치 개수가 증가한 것을 알 수 있습니다.
또한, [master]라고 표시되어 있는 셀렉트 박스 버튼을 클릭하면 아래로 펼쳐지는 화면에 hotfix 브랜치가 추가되어 있음을 알 수 있습니다.
원격 브랜치의 정보 확인하기
터미널에서 브랜치 목록을 확인하는 방법은 “브랜치”를 학습하면서 확인했습니다.
$ git branch 또는 $ git branch -v 로 확인이 가능했습니다.
이제 여기서 원격 저장소의 브랜치까지 확인하는 방법을 알아보겠습니다.
원격 저장소의 브랜치 목록을 확인하는 방법은 -r 옵션을 사용하면 됩니다.
# 원격 저장소의 브랜치 목록 확인
$ git branch -r
또한, 로컬 저장소의 브랜치들의 업스트림으로 설정된 원격 브랜치를 확인할 때에는 -vv 옵션을 사용합니다.
# 업스트림 정보와 함께 브랜치 목록 확인
$ git branch -vv
위 두 명령을 실행한 화면이 다음과 같습니다.
“트래킹 브랜치” 라고 표현했는데,
로컬 저장소의 브랜치에 원격 저장소의 브랜치가 업스트림으로 설정되어 있는 것을 트래킹 되었다고 하며, 그래서 이러한 원격 저장소의 브랜치를 트래킹 브랜치라고 이해하면 되겠습니다.
여기서, bugfix라는 브랜치를 생성하고, 다시 브랜치 목록을 확인한 결과가 다음과 같습니다.
이와 같이 bugfix는 설정된 업스트림이 없는 것을 확인할 수 있습니다.
이런 경우 $ git push 로만 실행해 전송할 수 없다는 것을 앞서 확인했습니다.
여기까지 원격 브랜치에 대해 알아봤습니다.
원격 브랜치에 대한 이해는 충분히 되었으리라 생각됩니다.
다음에는 원격 브랜치에 대해 조금 더 살펴보도록 하겠습니다.
감사합니다.
'코딩해보니 > Git' 카테고리의 다른 글
[Git_50] 원격 브랜치를 로컬 저장소로 복사 & 업스트림 연결하기 (0) | 2023.05.04 |
---|---|
[Git_49] 원격 브랜치 - 로컬 브랜치 이름과 원격 브랜치 이름을 다르게 설정하기 (0) | 2023.04.27 |
[Git_47] 서버(원격) 저장소에서 내려 받기 - Fetch (0) | 2023.04.20 |
[Git_46] 서버(원격) 저장소에서 내려 받기 - Pull (0) | 2023.04.18 |
[Git_45] 서버(원격) 저장소에서 내려 받기 - Clone (0) | 2023.04.01 |
댓글