본문 바로가기
기타/Git

[Git] branch 관리

by 코딩하는 랄로 2024. 1. 9.
728x90

지금까지 branch, merge, conflict의 기초에 대해서 알아보았는데, branch에 대해 더 깊게 다루기 전에 먼저 가볍게 branch를 관리하기 위한 간단한 명렁어들을 알아보겠다.

 

 

git branch -v

git branch는 아무런 옵션없이 실행하게 되면 현재 branch의 목록을 보여준다.

user@DESKTOP-UCJOAKJ MINGW64 /d/git/example (master)
$ git branch
* master
  ralro

 

이 때 branch 옆에 * 기호가 붙은 branch는 현재 HEAD가 가리키고 있는 branch, 즉 checkout 되어있음을 의미한다. 여기서 -v 옵션을 주게 되면 위의 목록에서 해당 branch의 커밋 개체의 SHA-1 해시 키와 함께 마지막 커밋 메세지도 함께 보여준다.

user@DESKTOP-UCJOAKJ MINGW64 /d/git/example (master)
$ git branch -v
* master 8dc2453 success merge
  ralro  f2709be modified file1

 

 

 

 

git branch --merged/--no-merged

현재 branch들의 상태를 확인할 수 있는 옵션이다. 현재 checkout한( * 기호가 붙은 ) branch를 기준으로 Merge 된 branch인지 그렇지 않은지를 필터링하여 볼 수 있다.

 

이전 글에서 ralro branch를 master branch에 merge 했으니 새로운 branch를 생성해보고 해당 옵션을 사용해보겠다.

user@DESKTOP-UCJOAKJ MINGW64 /d/git/example (master)
$ git branch ysg

user@DESKTOP-UCJOAKJ MINGW64 /d/git/example (master)
$ git branch
* master
  ralro
  ysg

user@DESKTOP-UCJOAKJ MINGW64 /d/git/example (master)
$ git checkout ysg
Switched to branch 'ysg'

user@DESKTOP-UCJOAKJ MINGW64 /d/git/example (ysg)
$ echo "modified" > file2.txt

user@DESKTOP-UCJOAKJ MINGW64 /d/git/example (ysg)
$ git commit -am "modified file2"
warning: in the working copy of 'file2.txt', LF will be replaced by CRLF the next time Git touches it
[ysg 21abbc1] modified file2
 1 file changed, 1 insertion(+), 1 deletion(-)

user@DESKTOP-UCJOAKJ MINGW64 /d/git/example (ysg)
$ git checkout master
Switched to branch 'master'

user@DESKTOP-UCJOAKJ MINGW64 /d/git/example (master)
$ git branch --merged
* master
  ralro

 

master branch에서 ysg branch를 생성한 후에 ysg branch에서 새로운 커밋 개체를 생성해 주었다. ( 새로운 커밋을 생성해주지 않으면 ysg branch가 merge 된 commit 개체를 가리키고 있기 때문에... ) 그런 다음 다시 master branch로 돌아와 --merged 옵션을 실행해주는 master와 ralro 만 출력되는 것을 볼 수 있다.

user@DESKTOP-UCJOAKJ MINGW64 /d/git/example (master)
$ git branch --no-merged
  ysg

 

반대로, no-merged 옵션을 실행해주면 merge 되지 않은 ysg branch를 출력한다. 해당 branch는 아직 merge가 진행되지 않았기 때문에 -d 옵션으로는 삭제가 안되고 -D 옵션을 사용하여 삭제해주어야 한다.

 

--merged/--no-merged 옵션은 현재 checkout 한 branch를 기준으로 하기 때문에, 다른 branch를 기준으로 보고 싶을 때에는 해당 옵션의 뒤에 원하는 branch를 적으면 된다.

user@DESKTOP-UCJOAKJ MINGW64 /d/git/example (master)
$ git checkout ysg
Switched to branch 'ysg'

user@DESKTOP-UCJOAKJ MINGW64 /d/git/example (ysg)
$ git branch --merged master
  master
  ralro

 

 

 

 

 

reference : pro git

728x90

'기타 > Git' 카테고리의 다른 글

[Git] remote tracking branch  (1) 2024.01.11
[Git] branch workflow  (0) 2024.01.09
[Git] Conflict 기초  (2) 2024.01.08
[Git] Merge 기초  (0) 2024.01.04
[Git] checkout  (1) 2024.01.03