카테고리 없음

Git 브랜치(Branch)다루기4 - 브랜치 관리

네모메모 2021. 8. 10. 20:25
반응형

 


브랜치 관련 명령은 대부분 '$git branch'명령이나 특화된 애들은 또 다른 명령어를 사용한다.


일단 모두 정리해 보자면 아래와 같다!

$ git branch 관련 명령어

 브랜치 생성 : $ git branch <branchname>

 브랜치 삭제 : $ git branch -d <BranchName>

 브랜치 이름변경 : $ git branch -m <oldbranch> <newbranch>

 로컬 브랜치 목록 조회 : $ git branch

 로컬&원격 브랜치 목록 조회 : $ git branch -a

 브랜치 목록과 브랜치별 마지막 커밋 조회 : $ git branch -v

 Merge한 브랜치 목록 확인 : $ git branch --merged <커밋이나 브랜치명>

 '현재 Checkout한 브랜치'에 Merge 하지 않은 브랜치 목록 확인: 
$ git branch --no-merged <커밋이나 브랜치명>

브랜치 이동 명령어

 다른 브랜치로 이동 : 
$ git checkout <BranchName>

 브랜치 생성 및 이동 : $ git checkout -b <BranchName>

 브랜치 병합(=merge=합치기=머지) 명령어

  ①  $ git checkout <병합 작업할 브랜치명> 명령 후,
  ②  $ git merge <병합 대상인 브랜치명> 명령 실행한다!


브랜치 히스토리 조회

 브랜치가 가리키는 커밋 확인: $ git log --decorate
 현 브랜치 히스토리 조회 : $ git log --oneline --decorate --graph --all


 

 


 

 로컬 브랜치 목록 조회 : $ git branch

 - 아무런 옵션 없이 실행하면 브랜치의 목록을 보여준다.

 - '*' 기호가 붙어 있는 master 브랜치는 현재 Checkout 해서 작업하는 브랜치를 나타낸다. 

 - ex)

$ git branch
* java
  master

 

 


 

로컬&원격 브랜치 목록 조회 : $ git branch -a

 - [a옵션]을 사용하면 로컬 브랜치와 더불어 원격 저장소에 있는 브랜치도 보여준다.

$ git branch -a
* java
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/arch-components-lifecycle
  remotes/origin/arch-components-room
  remotes/origin/arch-components-viewmodel
  remotes/origin/dagger-step-1
  remotes/origin/dagger-step-2
  remotes/origin/java
  remotes/origin/kotlin-step-1
  remotes/origin/kotlin-step-2
  remotes/origin/kotlin-step-2_cache-on-viewholder
  remotes/origin/master
  remotes/origin/rxjava
  remotes/origin/rxjava-rxbinding

 


 

 

브랜치 목록과 브랜치별 마지막 커밋 조회 : $ git branch -v

 - [v옵션]사용하면 '브랜치'와 '브랜치마다 마지막 커밋 메시지'를 보여준다.

$ git branch -v
* java   080897e Update circleci script to 2.0
  master 724da71 Update cover image

 


 

브랜치별 현상태 확인하는 2가지 명령어

    : $ git branch --merged 또는 $ git branch --no-merged

 

ㄴ> 명령어에 커밋이나 브랜치 이름을 지정해주면 지정한 브랜치를 기준으로 Merge 되거나 Merge 되지 않은 내용을,

       지정해주지 않으면 현재 브랜치를 기준으로 Merge 되거나 Merge 되지 않은 내용을 출력한다.

 


  
1. Merge한 브랜치 목록 확인

    : $ git branch --merged <커밋이나 브랜치명>

- 이미 Merge 한 브랜치 목록을 확인한다.

- Merge 된 브랜치인지 그렇지 않은지 필터링해 볼 수 있다. 

 

- Ex) 이전 포스팅 예제 상황에서 사용 시

$ git branch --merged
  addQnA
* master

ㄴ> addQnA 브랜치는 앞에서 이미 Merge 했기 때문에 목록에 나타난다. 

ㄴ> '*' 기호가 붙어 있지 않은 브랜치는 $ git branch -d 명령으로 삭제해도 되는 브랜치  
      ∵ 이미 다른 브랜치와 Merge 했기 때문에 삭제해도 정보를 잃지 않는다.

 

 

 


 

 

2. '현재 Checkout한 브랜치'에 Merge 하지 않은 브랜치 목록 확인

    : $ git branch --no-merged <커밋이나 브랜치명>

- 현재 Checkout 한 브랜치에 Merge 하지 않은 브랜치 목록을 확인

- Ex1)

$ git branch --no-merged
  testing

ㄴ> 위에는 없었던 다른 브랜치가 보인다. 

 

- 아직 Merge 하지 않은 커밋을 담고 있기 때문에 $ git branch -d 명령으로 삭제되지 않는다

   굳이 Merge 하지 않은 브랜치를 강제로 삭제하려면 -D 옵션으로 삭제한다.

    ㄴ> Ex1-1)

$ git branch -d testing
error: The branch 'testing' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testing'.

ㄴ> 'testing'브랜치는 아직 Merge 하지 않은 커밋을 담고 있기 때문에 $ git branch -d 명령으로 삭제되지 않는다.

 

 

 

 

 

 



 

 


 

END!

 

 


스터디 도움 참조 블로그 (References)

- 3.3 Git 브랜치 
https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EA%B4%80%EB%A6%AC9%80-Merge-%EC%9D%98-%EA%B8%B0%EC%B4%88

- 브랜치 명령어
https://backlog.com/git-tutorial/kr/reference/branch.html

- git--distributed-even-if-your-workflow-isnt (Pro Git Book)
https://git-scm.com/book/en/v2

 

 

 

반응형