📌개요
싱글 브랜치 명령어를 사용해서 특정 브랜치만 클론한 저장소에서는 원격 저장소의 다른 브랜치를 확인할 수 없다.
이런 상황에서 원격 브랜치를 추가, 삭제, 추적하는 방법을 알아보자.
📌내용
어떤 상황이냐면?
|
|
위 명령으로 특정 브랜치만 클론하면 .git/config
파일에 해당 브랜치에 대한 정보만 기록된다.
특정 브랜치만 추적하기 위해 의도적으로 싱글 브랜치 클론을 받은 거라서 문제라고 하긴 뭐하지만, 추가적으로 다른 브랜치를 확인하고 싶은 경우를 예로 든다.
git remote show <저장소>
또는 git branch -a
명령어를 실행해도 원격 저장소의 다른 브랜치 목록을 확인할 수 없다.
git checkout
또는 git switch
명령어를 사용하여 원격의 다른 브랜치로 전환할 수 없다.
특정 브랜치만 로컬로 가져와 추적하고 원격 저장소에 또 다른 어떤 브랜치가 있는지 모르기 때문이다.
어떡하지?
원격 브랜치 확인
|
|
하지만 싱글 브랜치 옵션으로 로컬에 클론했기 때문에 특정 브랜치만 확인되고 나머지 원격 저장소에 존재하는 브랜치를 확인할 수 없다.
원격 브랜치 추가 추적
1개 또는 그 이상의 브랜치를 추적할 수 있게 추가한 뒤 fetch
명령으로 브랜치에 대한 업데이트를 가져온다.
git remote set-branches
명령 사용 시 옵션을 함께 사용하지 않으면 덮어쓰기 되는 걸 주의하자.
|
|
원격 브랜치 정보를 가져왔고 전환할 수 있게 됐다면, 직접 전환하거나 브랜치 목록을 추가할 수 있다.
|
|
브랜치 전환이 정상적으로 됐다면 원격 브랜치를 제대로 추적하고 있는지 확인한다.
|
|
추가가 된다면 삭제는?
git remote set-branches
명령어에는 --add
옵션이 있어서 추가할 수 있지만 삭제 옵션은 없다.
덮어쓰기가 가능하다는 점을 이용해서 추적 중지하고 싶은 브랜치를 제외하고 등록한다.
|
|
🎯결론
추적 브랜치를 조정하는 작업은 fetch
명령 시 업데이트 정보를 확인하거나 브랜치를 전환하기 위함이다.
- 원격 저장소에 브랜치가 많은데 모두 받긴 싫고 특정 브랜치로만 작업하고자 한다면 싱글 브랜치로 특정 브랜치만 가진 클론을 생성할 수 있다.
- 이후 추가적으로 다른 브랜치의 정보도 확인이 필요하다면 조정할 수 있다.
추적 브랜치를 추가하면 브랜치 목록에서 확인할 수 있다.
하지만 한 번이라도 추적이 된 브랜치라면 git remote set-branches
명령을 통해 제외하더라도 git branch -r
또는 git branch -a
옵션을 통한 명령어의 결과에선 계속 확인된다.
fetch
설정과 원격 브랜치 목록 조회 명령어가 서로 다른 정보를 사용하기 때문이다.
⚙️EndNote
최후의 수단
.git/config
파일을 직접 수정한다.
.git/config
파일을 텍스트 편집기로 연다.[remote "origin"]
과 같이 원하는 섹션에서 삭제하려는 브랜치에 대한fetch
항목을 찾아 삭제하고 파일을 저장한다.
파일 정보를 예를 들면 아래와 같다.
|
|