Fork GUI  https://git-fork.com/
출처 fork 공식 블로그 https://git-fork.com/blog/

 

Git GUI 툴인 Fork(git-fork.com) 를 사용하다 보면, 좌측 사이드바의 Branches 목록에서 잘 작업하던 브랜치 옆에 경고 느낌표(!) 아이콘이 표시되는 경우가 있습니다.

갑자기 느낌표가 뜨면 내 코드에 치명적인 충돌이나 에러가 발생한 것은 아닌지 당황하기 쉬운데요.

이번 글에서는 Fork에서 브랜치 옆에 느낌표 아이콘이 뜨는 정확한 원인상황별 대처 및 정리 방법 을 정리합니다.


1. Fork 브랜치 아이콘의 의미와 느낌표(!)의 정체

Fork는 로컬 브랜치와 원격 저장소(upstream/origin)의 추적 상태를 시각적으로 구분할 수 있도록 3가지 형태의 아이콘을 제공합니다.

브랜치 아이콘 상태 의미
일반 브랜치 아이콘 Local only: 아직 원격에 푸시하지 않은 순수 로컬 브랜치
화살표가 포함된 아이콘 Pushed upstream: 원격 저장소의 브랜치와 정상적으로 연결 및 동기화된 상태
경고 느낌표(!) 아이콘 Remote branch removed: 원격에 푸시했었으나, 원격 브랜치가 삭제된 상태

즉, 느낌표(!)는 코드가 깨진 것이 아니라 "이 로컬 브랜치가 바라보고 있던 원격(Remote) 브랜치가 GitHub/GitLab 등에서 이미 삭제되었습니다" 라는 일종의 연결 끊김 알림(Orphaned Branch)입니다.


2. 왜 원격 브랜치가 삭제되었을까?

보통 팀 협업 환경에서 다음과 같은 작업이 일어났을 때 느낌표가 나타납니다:

  1. Pull Request(PR) 머지 후 원격 브랜치 자동 삭제
    • GitHub이나 GitLab에서 PR이 통과되어 main 또는 develop에 머지된 후, "Delete branch" 버튼을 눌러 원격 브랜치를 삭제한 경우입니다.
  2. 동료 개발자가 작업 완료 후 원격 브랜치를 정리한 경우
  3. Fetch with Prune 실행 후 갱신
    • Fork에서 Fetch (with Prune)를 수행하면서 로컬이 원격의 최신 삭제 내역을 감지했을 때 느낌표로 전환됩니다.

3. 상황별 해결 및 대처 방법

느낌표 아이콘을 발견했다면 현재 작업 상태에 따라 아래 두 가지 중 하나로 조치하시면 됩니다.


상황 1: 이미 PR이 머지되어 작업이 완전히 끝난 경우 (가장 흔함)

원격에서 이미 머지되어 삭제된 브랜치이므로, 내 컴퓨터(로컬)에 남아있는 해당 브랜치도 안전하게 삭제하여 목록을 정리하면 됩니다.

  1. 좌측 사이드바 Branches에서 느낌표(!)가 뜬 브랜치를 우클릭합니다.
  2. Delete '브랜치명'… 을 클릭합니다.
  3. 팝업 확인창에서 삭제를 완료하면 사이드바가 깔끔해집니다.

상황 2: 아직 작업 중인데 실수로 원격 브랜치가 지워졌거나 다시 올려야 하는 경우

로컬에 작성된 커밋들은 그대로 남아있으므로, 원격 저장소에 다시 푸시해주면 느낌표가 사라지고 정상 동기화 아이콘으로 돌아옵니다.

  1. 해당 브랜치를 더블 클릭하여 체크아웃(Checkout) 합니다.
  2. 상단 툴바의 Push 버튼을 클릭합니다.
  3. Push to: 항목에 대상 원격 저장소(origin)를 지정하고 푸시를 진행합니다.
  4. 원격에 브랜치가 다시 생성되면서 느낌표 아이콘이 사라집니다.

💡 추가 꿀팁: 원격에서 지워진 브랜치 한 번에 감지하기 (Prune)

GitHub 웹상에서 브랜치를 삭제했더라도 로컬 Fork에서는 여전히 남아있는 것처럼 보일 수 있습니다. 주기적으로 원격의 삭제 상태를 로컬과 동기화하려면 Prune 옵션을 켜두는 것이 좋습니다.

  • Fork 상단 툴바 Fetch 클릭 ➔ Prune tracking branches no longer on remote 체크 ➔ Fetch 실행

이렇게 하면 원격에서 사라진 브랜치들을 한 번에 스캔하여, 로컬 브랜치에 느낌표(!)를 즉시 띄워주므로 불필요한 브랜치를 제때 정리할 수 있습니다.

반응형