
로컬에서 이런저런 작업을 하다가 코드가 꼬였거나, 잘못된 커밋이 쌓여서 "내 로컬의 모든 수정을 버리고 원격 저장소(origin) 상태와 100% 똑같이 강제로 맞추고 싶을 때" 가 있습니다.
Git 개념상 로컬 작업을 유지한 채 베이스를 바꾸는 rebase와 달리, 원격 상태로 로컬을 완전히 덮어씌우는 작업은 Fetch 후 Hard Reset 방식으로 진행해야 합니다.
Fork(git-fork.com) GUI를 사용해 클릭 몇 번으로 로컬을 origin 최신 커밋으로 깔끔하게 강제 동기화하는 방법을 정리합니다.
⚠️ 주의사항: 작업 중인 변경 사항 영구 삭제
Hard Reset을 실행하면 아직 커밋하지 않은 수정 파일(Uncommitted changes)과 원격에 없는 로컬 커밋 내역이 완전히 삭제됩니다. 혹시 나중에 참고해야 할 임시 작업물이 있다면 미리 Stash(임시 저장)를 해두세요.
1단계: 원격 저장소(origin) 최신 커밋 가져오기 (Fetch)
로컬 Git이 origin의 가장 최신 커밋 위치를 알고 있어야 정확한 지점으로 되돌릴 수 있습니다.
- Fork 상단 툴바에서 Fetch 아이콘을 클릭합니다.
Fetch from:드롭다운에서 origin을 선택하고 Fetch 버튼을 누릅니다.- 이제 중앙 커밋 그래프 화면에
origin/main(또는 동기화할 브랜치명) 라벨이 최신 커밋 위치로 갱신됩니다.
2단계: 동기화할 로컬 브랜치 체크아웃
- 좌측 사이드바 Branches 영역을 확인합니다.
- 원격과 일치시키려는 내 로컬 브랜치(예:
main또는 작업 브랜치)를 더블 클릭하여 체크아웃합니다. - 브랜치명 옆에 체크 표시(✔) 또는 굵은 글씨로 활성화되었는지 확인합니다.
3단계: origin 브랜치를 기준으로 Hard Reset 실행 (핵심)
로컬 브랜치의 HEAD 포인터를 origin 브랜치 위치로 강제 이동시킵니다.
- 좌측 사이드바의 Remotes ➔ origin ➔ 맞추고 싶은 브랜치(예:
main) 를 찾습니다.
(중앙 커밋 히스토리 그래프에서origin/main태그를 직접 찾아도 됩니다.) - 해당 브랜치를 우클릭합니다.
- 메뉴에서
Reset '현재브랜치명' to Here...를 클릭합니다.- 예:
Reset 'main' to Here...
- 예:
- 옵션 선택 팝업창에서 Reset 방식을 선택합니다:
- Hard 옵션을 선택합니다.
(Hard: 로컬의 모든 변경 사항과 커밋을 버리고 대상 커밋 상태로 완벽히 일치시킴)
- Hard 옵션을 선택합니다.
- Reset 버튼을 클릭하여 실행합니다.
💡 실행 결과 확인
- 커밋 그래프 정리: 내 로컬 브랜치 태그(
main)와 원격 브랜치 태그(origin/main)가 그래프상에서 완전히 동일한 커밋 위치에 나란히 배치됩니다. - 작업 디렉토리 초기화: 좌측 상단 Changes 탭이 0으로 비워지며, 로컬의 모든 파일이 원격 저장소의 코드 상태와 100% 동일해집니다.
반응형
'코드버전관리(git, svn)' 카테고리의 다른 글
| [Fork GUI] 로컬 브랜치에 느낌표(!) 아이콘이 뜨는 이유와 깔끔한 정리 방법 (0) | 2026.09.11 |
|---|---|
| [Fork GUI 꿀팁] 사이드바 드래그 앤 드롭으로 브랜치 병합(Merge) 및 리베이스(Rebase) 초간단 처리법 (0) | 2026.09.10 |
| [Fork GUI 매뉴얼] Fork한 저장소에서 원본(Upstream) 최신 커밋 깔끔하게 가져오기 (Rebase 가이드) (1) | 2026.09.06 |
| [GIT] pull 대기목록 확인하는 방법 (0) | 2026.08.22 |
| [TortoiseGit GUI] 클론(Clone)과 특정 브랜치 체크아웃(Checkout) 한 번에 끝내기 (0) | 2026.08.21 |
