내 상황은 대강 이렇다.
Github의 원격 저장소에서 'pilwoo' 브랜치를 삭제했는데, git bash에서 브랜치를 검색해보니,빨간 글씨로 remotes/origin/pilwoo, 즉 아직 원격저장소에 남아있다고 한다.
난 분명 지웠는데 왜 남았을까 생각 좀 했고, 혹시 업데이트를 하지 않아서 그런가 추측했다.
결론적으로 내 예측은 맞았는데, 좀 더 구체적인 이유가 궁금했다.
일단 주된 원인은 로컬 Git 저장소의 참조가 아직 원격 저장소의 최신 상태를 반영하지 않아서이고,
Git은 기본적으로 원격 저장소의 상태를 자동으로 업데이트하지 않는다고 한다.
뭐, 네트워크 사용을 최소화하고 사용자가 수동으로 명령을 내릴 때만 원격 저장소의 정보를 업데이트하기 위해서란다.
내가 생각하기에도 만약 자동으로 업데이트를 하게 된다면, 안 그래도 민감한 데이터인데 의도치 않은 흐름으로 오류가 나서 꼬일 수도 있기에, 조금 귀찮더라도 안정성을 위해 수동으로 하는 게 나을 것 같다.
그러면 git bash에서도 삭제된 채로 보이게 하려면 어떤 명령어를 써야 할까.
git fetch --prune
fetch는 pull에서 merge를 뺀 것, 즉 원격 저장소의 최신 상태를 가져오는 것이다.
prune은 불필요한 가지를 친다는 뜻을 가지고 있는데, 원격 저장소에서 삭제된 브랜치에 대한 로컬의 참조도 제거한다.
즉 위 코드를 실행하면 원격 브랜치에서 최신 상태를 가져오면서, 삭제된 pilwoo 브랜치에 대한 로컬의 참조를 제거한다는 뜻이다.
이리하여 궁금증 하나 해결...
'개발툴 > Git&Github' 카테고리의 다른 글
git - 팀원이 업데이트하고 나서, 내 작업물을 올릴 때 순서 간단 요약 정리 (1) | 2024.03.23 |
---|---|
[git checkout 원격저장소 브랜치]에 대한 이해, 원격 브랜치를 로컬로 가져오는 방법 (0) | 2024.03.23 |
Git에서 원격 저장소의 파일 삭제를 로컬에 반영하는 방법 (0) | 2024.03.23 |
Git 사용법: Clone, Pull, Push (0) | 2024.03.22 |
Git 용어 및 명령어 정리와 사용예시 (0) | 2024.03.22 |