Recent Posts
Recent Comments
Link
11-17 02:31
Today
Total
관리 메뉴

삶 가운데 남긴 기록 AACII.TISTORY.COM

git branch 관리 본문

DEV&OPS/Linux & Cloud

git branch 관리

ALEPH.GEM 2023. 3. 2. 21:13

 

 

원격 브랜치 로컬로 가져오기(fetch)

원격 저장소(orign)의 모든 원격 브랜치를 로컬로 가져옴

git fetch origin

체크아웃 할 수 있는 브랜치 목록 확인

git branch -a

브랜치 목록 중에서 원격 브랜치에는 remotes/origin 접두사가 붙어 있습니다.

 

 

 

 

원격 브랜치 업데이트

원격 저장소의 브랜치들을 갱신

git remote update

원격 저장소 브랜치 목록 확인

git branch -r

그런데 삭제된 원격 브랜치가 목록에 나오는 경우가 있습니다.

git remote update 명령은 원격 저장소에서 삭제된 브랜치들을 로컬 저장소에서 정리하지는 않기 때문입니다. 

모든 원격 저장소에 대해 삭제된 브랜치 정보를 정리(prune)하려면 아래와 같이 입력합니다.

git fetch --all --prune

만약 특정 원격 저장소에 대해 삭제된 브랜치 정보를 정리하려면 아래와 같이 입력합니다.

git fetch 원격저장소이름 --prune

예를 들어 원격 저장소(origin)에 브랜치를 merge하고 나서 삭제해도 로컬에는 해당 브랜치가 존재하는 상황에서

로컬의 브랜치들을 잘라 없애는(prune) 작업은 위 처럼 할수도 있있습니다.

하지만 아래 명령도 같은 기능을 수행합니다.

git remote prune origin

혹은

git remote update --prune

 

 

 

 

 

원격 브랜치의 변경 이력을 로컬 브랜치에 가져와서 적용(tracking)

git checkout -t 원격브랜치명

위 명령어는 원격 저장소의 브랜치를 로컬 브랜치에 영구적으로 tracking 할 때 -t 옵션으로 checkout 합니다.

이렇게 checkout 하면 원격 브랜치 명과 로컬 브랜치명이 같게 checkout 됩니다.

만약 원격과 로컬 브랜치명을 다르게 checkout하고 싶으면 아래 처럼 입력합니다.

git checkout -b 로컬브랜치명 원격브랜치명

예를 들어 origin/feature/tests 원격 브랜치를 로컬로 복사하려면 아래와 같이 입력합니다.

git checkout -b feature/tests origin/feature/tests

위 명령어는 feature/tests 브랜치를 생성하고, 새 브랜치(feature/tests)로 체크아웃하며, 원격 브랜치 origin/feature/tests의 변경 이력을 로컬 feature/tests 브랜치로 가져(pull)옵니다.

 

 

 

브랜치 삭제

로컬 브랜치 삭제

git branch -d 브랜치명

-D 옵션으로 강제로 삭제 할 수 있습니다.

 

원격 저장소(origin) 브랜치 삭제

git push origin --delete 브랜치명

참고: git 웹페이지에서 원격 브랜치를 삭제를 지원 할 수도 있습니다. 

 

 

 

다른 브랜치 커밋을 개별 적용

git cherry-pick은 다른 브랜치에 있는 커밋을 개별로 현재 브랜치에 적용시킬 때 사용합니다.

브랜치 전체를 병합(merge)하는 것이 아니라 특정 커밋만을 현재 브랜치로 가져옵니다.

git cherry-pick 커밋해시값

만약 merge한 커밋에 대해 cherry-pick을 하려면 아래처럼 할 수 있습니다. 

git cherry-pick -m 1 머지커밋해시값

cherry-pick 중단 명령

git cherry-pick --abort

 

 

 

728x90