생계유지형 개발자/Tools

[git] branch 삭제하기 (git branch -d / -D)

이 가을 2019. 12. 11. 16:19

# 안전하게 로컬 브랜치 삭제

$ git branch -d <branch_name>

The -d option stands for --delete, which would delete the local branch, only if you have already pushed and merged it with your remote branches.

-d 옵션은 로컬 브랜치(Local branch) 에서 작업 후 원격 저장소(Remote branch)에 정상적으로 push 또는 merge된 로컬 브랜치를 삭제한다.

즉, 삭제하려는 브랜치에 Commit 이력이 있으나, 원격 저장소로 push 또는 merge되지 않은 로컬 브랜치는 삭제가 불가능하다.

 

 

# 강제로 로컬 브랜치 삭제

$ git branch -D <branch_name>

The -D option stands for --delete --force, which deletes the branch regardless of its push and merge status, so be careful using this one!

-D 옵션은 원격 저장소에 push를 했든 말든 무조건(--force) 로컬 브랜치를 삭제한다.

 

 

# 원격 브랜치 삭제

$ git push origin :<branch_name>

위에 2개 방법의 브랜치 삭제 명령어를 실행해도 로컬 브랜치만 삭제되고 원격 브랜치는 여전히 남아있다.

로컬 브랜치와 연결된 원격 브랜치를 삭제하기 위해서는 로컬 브랜치 삭제 후 push 명령어를 실행해주어야 한다.

 

 

# 예제

# 현재 브랜치 목록 
my_project$ git branch
  2019-PRJ-E016-41251
  2019-PRJ-E016-41691
  dev
* dev-2019
  master
  master-2019

# 2019_PRJ_E016_* 으로 시작하는 2개의 브랜치 삭제
my_project$ git branch -d 2019-PRJ-E016-41251 2019-PRJ-E016-41691
Deleted branch 2019-PRJ-E016-41251 (was d25db7e4).
Deleted branch 2019-PRJ-E016-41691 (was d8f2be5a).

# 2개의 브랜치 삭제 후 브랜치 목록 
my_project$ git branch
  dev
* dev-2019
  master
  master-2019
  
# 원격 저장소 삭제
my_project$ git push origin :2019-PRJ-E016-41251