Fork GUI  https://git-fork.com/

 

로컬에서 이런저런 작업을 하다가 코드가 꼬였거나, 잘못된 커밋이 쌓여서 "내 로컬의 모든 수정을 버리고 원격 저장소(origin) 상태와 100% 똑같이 강제로 맞추고 싶을 때" 가 있습니다.

Git 개념상 로컬 작업을 유지한 채 베이스를 바꾸는 rebase와 달리, 원격 상태로 로컬을 완전히 덮어씌우는 작업은 FetchHard Reset 방식으로 진행해야 합니다.

Fork(git-fork.com) GUI를 사용해 클릭 몇 번으로 로컬을 origin 최신 커밋으로 깔끔하게 강제 동기화하는 방법을 정리합니다.


⚠️ 주의사항: 작업 중인 변경 사항 영구 삭제

Hard Reset을 실행하면 아직 커밋하지 않은 수정 파일(Uncommitted changes)과 원격에 없는 로컬 커밋 내역이 완전히 삭제됩니다. 혹시 나중에 참고해야 할 임시 작업물이 있다면 미리 Stash(임시 저장)를 해두세요.


1단계: 원격 저장소(origin) 최신 커밋 가져오기 (Fetch)

로컬 Git이 origin의 가장 최신 커밋 위치를 알고 있어야 정확한 지점으로 되돌릴 수 있습니다.

  1. Fork 상단 툴바에서 Fetch 아이콘을 클릭합니다.
  2. Fetch from: 드롭다운에서 origin을 선택하고 Fetch 버튼을 누릅니다.
  3. 이제 중앙 커밋 그래프 화면에 origin/main(또는 동기화할 브랜치명) 라벨이 최신 커밋 위치로 갱신됩니다.

2단계: 동기화할 로컬 브랜치 체크아웃

  1. 좌측 사이드바 Branches 영역을 확인합니다.
  2. 원격과 일치시키려는 내 로컬 브랜치(예: main 또는 작업 브랜치)를 더블 클릭하여 체크아웃합니다.
  3. 브랜치명 옆에 체크 표시(✔) 또는 굵은 글씨로 활성화되었는지 확인합니다.

3단계: origin 브랜치를 기준으로 Hard Reset 실행 (핵심)

로컬 브랜치의 HEAD 포인터를 origin 브랜치 위치로 강제 이동시킵니다.

  1. 좌측 사이드바의 Remotesorigin맞추고 싶은 브랜치(예: main) 를 찾습니다.
    (중앙 커밋 히스토리 그래프에서 origin/main 태그를 직접 찾아도 됩니다.)
  2. 해당 브랜치를 우클릭합니다.
  3. 메뉴에서 Reset '현재브랜치명' to Here... 를 클릭합니다.
    • 예: Reset 'main' to Here...
  4. 옵션 선택 팝업창에서 Reset 방식을 선택합니다:
    • Hard 옵션을 선택합니다.
      (Hard: 로컬의 모든 변경 사항과 커밋을 버리고 대상 커밋 상태로 완벽히 일치시킴)
  5. Reset 버튼을 클릭하여 실행합니다.

💡 실행 결과 확인

  • 커밋 그래프 정리: 내 로컬 브랜치 태그(main)와 원격 브랜치 태그(origin/main)가 그래프상에서 완전히 동일한 커밋 위치에 나란히 배치됩니다.
  • 작업 디렉토리 초기화: 좌측 상단 Changes 탭이 0으로 비워지며, 로컬의 모든 파일이 원격 저장소의 코드 상태와 100% 동일해집니다.

 

연관글 어느 날 갑자기 내 Git에 Pull 대기 건수가 117건이나 떴다 (원인 분석과 안전한 해결책)

반응형