git 원격 브랜치가 삭제되지 않을 때

timo·2021년 7월 27일
0

troubleshooting

목록 보기
3/11
post-thumbnail

사건 발생

처음으로 제대로 된 프로젝트를 시작하면서 git과 github를 다른 사람과 같이 처음 사용해보게 되었다. fork, upstream, pull request 등의 어색한 개념들과 친해지려고 노력하던 와중... 본격적으로 commit과 push 등을 하게 된 날이었다. upstream 저장소에서 fork해온 뒤, PR하는 방식으로 개발을 진행했기 때문에 처음으로 정신없는 git log들을 접할 수 있었다. 내가 접한 당황스러움은 다음과 같았다.

local에서 브랜치를 만들어 작업을 한 후, 나의 계정 저장소인 origin에 push를 하고 upstream에 PR한다. 팀원과 함께 PR을 확인하고 merge한다. 여기까지가 나의 인식 속 과정이었는데, 이를 마치고 git log를 살펴보니 아래 사진과 같이 branch들이 log 곳곳에 위치해 있는것을 확인할 수 있었다. 찾아보니 이 과정을 거친 후 보통 branch를 삭제한다는 것을 알 수 있었다.

지저분한걸 잘 못보는 성격상 아래 명령어를 통해

git branch -d <branch 이름>

local의 branch들을 삭제했다.

origin의 branch는 github 웹사이트에사 바로 확인이 가능했기 때문에 버튼 하나로 빠르게 삭제할 수 있었다.

하지만 컴퓨터 cmd에서 git log를 확인해 보니 local의 브랜치들만 삭제된 것을 확인할 수 있었다. git branch -a를 통해서도 확인하니 아래 사진처럼 origin 브랜치들이 그대로 있었다.

문제 해결

구글링을 통해 다음과 같은 명령어를 찾을 수 있었다.

git fetch --all --prune
git remote prune origin

prune이라는 명령어를 처음 알게 되었는데, 다음과 같은 내용이었다.
https://git-scm.com/docs/git-prune

Prune all unreachable objects from the object database

unreachable한 오브젝트를 prune, 그러니까 가지치기한다는 뜻이다. 가지를 친다는 표현이 너무 직관적이고 적합한 것 같다. 명령어 뜻을 찾아보며 내 컴퓨터에서 발생한 저 사건, git log가 동시에 이해되었다.

마무리

해당 명령어를 통해 unreachable한 것들을 모두 없앨 수 있었다. git,, 언젠간 익숙해지겠ㅈㅣ..?

profile
Backend Developer

0개의 댓글