이번에는 git의 브랜치 관련 명령들을 알아보겠습니다.
브랜치는 동일한 소스를 기반에서 다양한 버전을 만들어 낼 수 있는 기능으로, 여러 사람이 동시에 작업을 하거나, 조금씩 다른 버전을 만들어 테스트할 때 매우 유용한 기능입니다.
원격 브랜치 가져오기
원격 저장소의 branch를 로컬 저장소로 가져와야 하는 경우, 원격 저장소를 clone하던지, pull하면 원격 저장소의 branch도 받아질 것 같지만, master 브랜치 하나만 존재합니다.
따라서, 원격 저장소의 특정 branch를 가져오기 위해서는 git checkout -t
를 사용해야 합니다.
원격 저장소 갱신
먼저 원격 저장소의 브랜치에 접근하기 위해 원격 저장소를 갱신해줍니다.
git remote update
원격 저장소 branch 확인
원격 저장소의 branch 리스트를 확인합니다.
git branch -r
아래와 같이 branch 리스트들이 출력됩니다.
origin/HEAD -> origin/master
origin/dev
origin/master
로컬 저장소 branch 제거하기
만약 원격 저장소 branch와 동일한 이름의 로컬 저장소 branch가 있는 경우, git branch -d
명령을 사용하여 제거합니다.
git branch -d dev
원격 저장소 branch 가져오기
git checkout -t
를 사용하면, 원격 저장소의 branch 이름과 동일한 이름의 로컬 저장소 branch를 생성하고, 해당 branch 로 checkout합니다.
git checkout -b
를 사용하면, branch 이름을 변경해서 가져올 수 있습니다.
git checkout -f
를 사용하면 문제 발생해도 강제로 branch이름과 동일한 로컬 저장소 branch를 생성하고, 해당 branch로 checkout합니다.
git checkout -t origin/dev
git checkout -f -t origin/dev
브랜치 합치기, 병합하기
저장소 만들면 기본적으로 master 브랜치가 생성됩니다.
보통 다른 branch에서 개발 진행후, 완료되면 master가지로 와서 병합하게 됩니다.
checkout 명령을 사용하여 issue1
이름의 branch 로 변경하는데, -b
옵션을 사용하여 branch를 생성합니다.
git checkout -b issue1
해당 branch에서 개발을 진행한 후, 작업한 branch를 원격 저장소에 push하여 저장합니다.
git push origin issue1
작업이 완료되면 master
브랜치로 돌아옵니다.
git checkout master
issue1
을 master
에 merge (병합)합니다.
git merge issue1
완료되면 다음과 같이 fast forward되었다는 메시지와 함께 master가 issue1위치로 이동하게 됩니다.
Updating 1257027..b2b23c4
Fast-forward
myfile.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
branch -d
명령으로 임시 작업한 issue
branch 를 삭제합니다.
git branch -d issue1
원격 브랜치 삭제하기
git에서 로컬 브랜치와 원격 브랜치를 삭제하는 방법을 알아보겠습니다.
지금 삭제할 브랜치 이름은 pub_master입니다.
방법 1: 원격 저장소의 브랜치 삭제
원격 저장소 origin에만 pub_master가 존재하고, local 저장소에는 없는 경우, push 명령을 이용해서 원격 저장소에 push하고, delete명령을 추가하여 브랜치를 삭제할 수 있습니다.
git push origin --delete pub\_master
방법 2: 로컬 및 원격 저장소의 브랜치 삭제
로컬 및 원격 저장소의 브랜치를 모두 삭제할 경우에는, branch -d 명령으로 local branch를 삭제하고, 원격 저장소에 push합니다.
git branch -d pub\_master
git push origin pub\_master
Summary
command | description |
---|---|
git checkout -b temp | temp 브랜치 생성하고 switch |
git branch | 현재 브랜치 확인 |
git status | 상태 확인 |
git add . | 변경사항을 인덱스에 등록 |
git commit -m "temp branch" | 커밋하여 로컬 저장소에 저장 |
git push -u origin temp | 푸쉬하여 원격 저장소에 올림 |
git checkout master | master로 돌아오기 |
git merge temp | temp를 master에 병합 |
git branch -d temp | temp 브랜치 삭제 |
push없이 local하게만 merge할 경우
command | description |
---|---|
git checkout -b temp | temp 브랜치 생성하고 switch |
git branch | 현재 브랜치 확인 |
git status | 상태 확인 |
git add . | 변경사항을 인덱스에 등록 |
git commit -m "temp branch" | 커밋하여 로컬 저장소에 저장 |
git checkout master | master로 돌아오기 |
git merge temp | temp를 master에 병합 |
'작업 tools > git' 카테고리의 다른 글
gitignore not working (0) | 2023.04.07 |
---|---|
git 커밋: 특정 커밋 돌아가기, 되돌리기, 차이 확인하기, 날짜 바꾸기, 이슈처리 (0) | 2021.10.08 |
git 서브모듈: 추가하기, 변경하기,삭제하기 (0) | 2021.09.26 |
git 저장소: 복제하기, 합치기, 변경하기 (0) | 2021.09.26 |
개인 억세스 토큰사용하여 사용자 인증 진행하기 (1) | 2021.08.18 |