본문 바로가기

기술스택/Git

[Git] git branch -d 브랜치 캐싱

Git은 기본적으로 원격 브랜치가 삭제되었더라도 그 정보를 즉시 로컬에서 업데이트하지 않으며, 캐싱된 정보를 계속 사용합니다. 따라서 원격에서 이미 삭제된 브랜치라도, 로컬에서는 해당 브랜치가 남아있는 것처럼 행동하고 checkout 시에 자동으로 추적 브랜치를 생성하게 됩니다.

그래서 삭제한 로컬 브랜치도 tab사용하면 자동완성이 될 때가 있다는거...??

: 비슷한 이유, Git의 캐시나 리플렉트된 원격 참조가 남아있기 때문입니다.

 

=> 결론: 요약하자면, 원격 브랜치가 삭제되었지만 로컬에서 해당 정보를 업데이트하지 않았기 때문에 checkout 시에 원격 캐시 정보를 기반으로 추적 브랜치가 자동 생성된 것입니다

 

이를 방지하기 위해서는 git fetch -p로 원격과 로컬의 정보를 동기화하는 것이 좋다.(원격 참조 정리)

 

 

💯💯💯

git branch -d: 원격에서 가져올 수 있는 상태가 유지되도록 브랜치 삭제.

git branch -D: 삭제된 브랜치 되돌릴 수 없음.