Git 실무 가이드 · Part 4

복구와 원격 동기화

작업 중 문제가 생겼을 때 안전하게 멈추고 되돌리고 동기화하는 Git 실무 루틴

이 파트에서 다루는 내용

CH 11 망했을 때 되돌리기 - stash / reset / revertCH 12 원격 저장소 동기화 - fetch vs pull
01

되돌리기 명령은 상황별로 다릅니다

stash
잠깐 치워두기

커밋하지 않은 변경을 임시 보관합니다. 다른 브랜치로 급히 이동해야 할 때 씁니다.

reset
로컬 커밋 되감기

아직 push하지 않은 커밋을 고칠 때 씁니다. 옵션에 따라 파일 변경까지 사라질 수 있습니다.

revert
취소 커밋 만들기

이미 push한 커밋을 안전하게 취소합니다. 팀 브랜치에서는 reset보다 revert가 기본입니다.

git stash push -m "wip: login refactor"작업 중 변경 임시 보관
git stash pop가장 최근 stash를 꺼내 적용
git reset --soft HEAD~1방금 커밋만 취소하고 파일 변경은 유지
git reset --hard HEAD~1커밋과 파일 변경을 모두 제거
git revert abc1234특정 커밋을 되돌리는 새 커밋 생성
02

fetch와 pull은 적용 여부가 다릅니다

fetch는 원격의 새 이력을 가져오기만 하고 내 작업 파일에는 적용하지 않습니다.

pull은 fetch 후 merge 또는 rebase까지 실행합니다. 팀 작업에서는 pull 전에 status를 보고 내 변경 상태를 확인하는 습관이 필요합니다.

git remote -v연결된 원격 저장소 확인
git fetch origin원격 이력만 가져오기
git log --oneline --decorate --graph --all로컬과 원격 이력 모양 확인
git pull --ff-only origin mainmerge commit 없이 빠른 전진일 때만 pull
git push origin feature/git-guide내 브랜치를 원격에 업로드
03

문제가 생겼을 때의 판단표

수정 중인데 급한 hotfix로 이동해야 함

stash로 현재 변경을 치워두고 hotfix 브랜치로 이동합니다.

커밋 메시지를 잘못 썼고 아직 push 전

git commit --amend로 메시지 또는 포함 파일을 고칩니다.

이미 main에 들어간 커밋을 취소해야 함

reset이 아니라 revert로 취소 커밋을 만들어 팀 이력을 보존합니다.

체크

이 파트 완료 기준