형상관리/GIT

[git] -테스트,예제포함 / 브랜치 목록 / 생성 / 추적 브랜치 연결 / 추적 브랜치 해제

antoroong 2025. 4. 14. 14:27

생성되어 있는 브랜치 목록

원격/로컬 브랜치 함께 보기

git branch -a

 

 

  • 빨간색 으로 나오는 브랜치가 원격인 것을 알 수 있고
  • 나머지는 로컬 브랜치 인것을 알 수 있다

원격 저장소만 브랜치 목록 보기

  • 원격 저장소의 브랜치 이름만 보여준다
git branch -r

 

 

  • 원격 저장소 브랜치 이름, 커밋 정보
git branch -rv

 

 

 

로컬 저장소만 브랜치 목록 보기

  • 간단 조회
git branch -l
  • 로컬 브랜치 커밋번호/ 커밋메시지/ 현재 체크아웃된 브랜치 확인( * 표시)
git branch -v
또는
git branch -lv

 

 

 


현재 체크아웃된 브랜치 확인 , 상태 보기

git status

 

 

 


브랜치 전환

  • 생성되어 있는 브랜치 중에 있는 브랜치로 작업하겠다는 의미
git checkout [브랜치 이름]

 


브랜치 생성전 현재 상태 확인

생성전 
git branch -v 이용하여 지금 어떤 브랜치가 체크아웃 되어 있는지 확인해보기

 

 

 

현재 나는 dev/sohee로 체크아웃 되어 있고
빨간 박스안의 커밋 번호와 내용을 유심히 기억해보자

아무튼 현재 브랜치의 상태이다
그리고 브랜치를 생성 했을 때 어떨지 관찰해보기

미리 말한다면 
현재 내가 dev/sohee로 체크아웃 되어 있으니까 이 상태에서 브랜치를 생성한다면
dev/sohee 커밋 상황을 생성된 브랜치에 상속하게 됨

 

 

브랜치 생성 명령어

git branch [생성할 브랜치]
git checkout [생성된 브랜치]

또는 이 두개를 합친 명령어 ( 난 이것을 더 권장 그 이후 설정에서 조금 덜 꼬임)
아래 명령어는 생성과 동시에 체크아웃함

git branch -b [생성할 브랜치]
나는 예시로 feat/login 이라는 브랜치를 생성했다
/를 넣어서 생성하면 인텔리 제이에서 
feat라는 폴더가 생기고 그안에 login 브랜치가 생성되는 것이여서 
시각적으로 확인하기가 편하다 

 

 

 

인텔리제이에서 GUI로 브랜치 목록 보기

 

나의 로컬 깃 폴더에서도 확인하기

깃 관련 위치는
나의 워크스페이스/.git 

그리고 브랜치 관련은 
나의 워크스페이스/.git/refs

 

 

 

다시 로컬 브랜치 목록확인을 해보기

git branch -v

 

 

 

생성한 브랜치가 
main말고 
dev/sohee와 커밋 버전이 같은지 생각해보자

이유는 
내가 체크아웃된 브랜치는 dev/sohee 이고 여기서 feat/login 브랜치를 생성 했기에
feat/login은 dev/sohee의 커밋버전을 가져오게 된다

 

이젠 main 으로 체크아웃하고 새 브랜치 만들어보기

git checkout main

 

main으로 체크아웃된 상태에서 새로운 브랜치 생성하기

git branch 생성할브랜치

#나는 git branch feat/logout 생성

 

브랜치 목록을 화인해보자

git branch -v

 

 

 

이번에 생성한 feat/logout 브랜치는 
main과 커밋 번호가 동일한 것을 확인 했다

이렇듯
내가 현 체크아웃되어 있는 브랜치에서 생성한 new 브랜치는 
현 브랜치 정보를 상속 받는다

 


 

새로 만든 브랜치 원격 저장소에 업로드

git branch -v
#해당 명령어로 조회하면 새로 만든 브랜치가 보이는데

 

 

 git branch -r 
 
 #해당 명령어로 조회하면 새로 만든 브랜치가 보이지 않는다

 

우리는 아직 원격에 반영시키지 않았다

 

원격 저장소로 반영시키기

git push origin <브랜치 명>
git branch -r 으로 확인

 

 

 

  • 생성된것 확인

모든 브랜치 추적 관계 확인

git branch -vv  # 모든 브랜치의 추적 관계 확인
명령어를 사용해보자
근데 지금 dev/sohee 브랜치만 [origin/dev/sohee] 라고 특별하게 달려 있다
이것은 추적 브랜치를 dev/sohee만 등록이 되어 있기 때문이다

그래서 우리는 새로 만든 브랜치도 꼭 추적브랜치로 등록해 줄 것이다

 

 

추적 브랜치 설정

git push --set-upstream-to=origin/[원격 브랜치이름] [로컬 브랜치이름]

#예제
#feat/login(로컬) 브랜치를 origin/feat/login(원격브랜치)에 추적할 것이다
#이렇게 하면 이름이 다른 브랜치들끼리 추적 관계를 설정 할수도 있다.
git push --set-upstream-to=origin/feat/login feat/login
해당 명령어는 로컬 브랜치와 원격 브랜치 간의 추적 관계를 설정하거나 변경할 때 사용된다. 
특히 로컬 브랜치가 원격 브랜치와 동기화되어야 할 때 중요하다.
이후부터는 git push와 git pull 명령어를 사용할 때 원격 브랜치를 자동으로 추적할 수 있다

 

그냥 간단한 명령어(새로 생성한 브랜치이름 그대로 로컬↔원격 추적 연결 할 거면 이렇게 하기)

git push --set-upstream origin [브랜치이름]

 

예제

 

아까 push 했던 feat/login 브랜치를 추적 브랜치로 설정함
  • 설정 확인하기
git branch -vv
명령어로 다시 확인해보면

등록된 것 확인

나머지 브랜치도 push로 등록하고 추적 브랜치 등록까지 다 해주기

 

 

 

추적 브랜치 해제

git branch --unset-upstream [브랜치 이름]

 

예제

# feat/login 브랜치 추적 해제
git branch --unset-upstream feat/login  

# 브랜치 추적 관계 확인
git branch -vv  

 

 

 

요약 : 로컬에서 브랜치를 생성 하게 되면 이렇게 하면됨

git branch [만들 브랜치 명]  #브랜치 만들기
git checkout [만든 브랜치 명] #만든 브랜치로 체크아웃
git push origin [만든 브랜치 명] #로컬에서 만든 브랜치 원격에 적용
git branch --set-upstream origin [브랜치 명] #로컬과 원격 브랜치 추적설정