🚀 스낵깃 🍪 -중급편 #9:깃 Reset/Revert/ Checkout/Restore
“아니, 변경 사항을 되돌리려고 하는데… 🤔”
“Reset, Revert, Checkout, Restore… 뭐가 뭔지 헷갈린다!”
“이거 잘못 쓰면 코드 다 날아가는 거 아닌가요? 😱”
Git에서 변경 사항을 되돌리는 방법은 여러 가지가 있습니다.
하지만 각각의 역할이 다르기 때문에, 제대로 이해하고 사용해야 안전합니다. 🚀
오늘은 Git에서 가장 많이 사용되는 4가지 롤백 명령어의 차이를 한눈에 정리해보겠습니다! 🎯
🔥 Git 변경 사항 되돌리기 - 4가지 방법 비교
🔥 git reset - 특정 커밋으로 되돌리기 (⚠️ 조심해서 사용!)
💡 기능:
• 특정 커밋 이전으로 되돌리고, 그 이후의 커밋을 삭제합니다.
• 옵션에 따라 스테이징 영역과 작업 디렉터리도 초기화할 수 있습니다.
✅ 사용법:
git reset --soft HEAD~1 # 마지막 커밋을 삭제하지만 변경 사항 유지
git reset --mixed HEAD~1 # 마지막 커밋 삭제 + 스테이징 해제
git reset --hard HEAD~1 # 마지막 커밋 삭제 + 작업 내용도 삭제 (⚠️ 주의!)
🚨 주의:
• --hard 옵션을 사용하면 코드가 완전히 삭제되므로 복구할 수 없습니다! 😱
• 이미 push한 커밋을 reset하면 팀원들과 충돌이 발생할 수 있습니다.
• 혼자 작업할 때 로컬에서만 사용하는 것이 안전합니다.
📌 언제 사용하면 좋을까요?
✅ 아직 push하지 않은 커밋을 취소할 때
✅ 여러 개의 커밋을 정리하고 싶을 때 (git reset --soft)
🔥 git revert - 이력을 유지하면서 변경 사항 되돌리기 (✅ 협업 친화적)
💡 기능:
• git reset과 다르게, 기존 커밋을 삭제하는 것이 아니라 되돌리는 새 커밋을 생성합니다.
• 이력이 남기 때문에 협업 환경에서 안전하게 사용할 수 있습니다.
✅ 사용법:
git revert HEAD # 가장 최근 커밋을 되돌리기
git revert HEAD~2 # 2개 전 커밋을 되돌리기
📌 언제 사용하면 좋을까요?
✅ 이미 push한 커밋을 되돌릴 때 (이력을 유지하면서 변경)
✅ 협업 프로젝트에서 안전하게 롤백할 때
🔥 git checkout - 브랜치 변경 & 특정 파일 되돌리기
💡 기능:
• 브랜치를 변경하거나,
• 특정 파일을 과거 상태로 되돌릴 때 사용됩니다.
✅ 사용법:
git checkout main # main 브랜치로 이동
git checkout HEAD~2 -- index.html # index.html을 2개 전 커밋 상태로 되돌리기
🚨 주의:
• 최근 Git에서는 브랜치 변경은 git switch, 파일 변경은 git restore로 분리되었습니다.
• git checkout 대신 git switch와 git restore를 사용하는 것이 권장됩니다.
📌 언제 사용하면 좋을까요?
✅ 다른 브랜치로 이동할 때 (git switch 추천)
✅ 특정 파일만 과거 상태로 되돌릴 때 (git restore 추천)
🔥 git restore - 파일 변경 사항 초기화
💡 기능:
• 특정 파일의 변경 사항을 초기화하는 데 사용됩니다.
• git reset이 커밋 단위라면, git restore는 파일 단위로 되돌리는 기능입니다.
✅ 사용법:
git restore index.html # index.html 파일 변경 취소
git restore --staged index.html # staging된 index.html을 unstaged 상태로 변경
📌 언제 사용하면 좋을까요?
✅ git add 했는데 변경 사항을 취소하고 싶을 때
✅ 특정 파일을 원래 상태로 되돌리고 싶을 때
🔹 언제 어떤 명령어를 사용할까요?
✅ 협업에서 안전한 방법
• 이미 push한 커밋을 취소하고 싶다 → git revert
• 브랜치를 변경하고 싶다 → git switch (git checkout 대체)
• 파일 변경 사항을 취소하고 싶다 → git restore
⚠️ 조심해야 할 명령어
• 최근 커밋을 삭제하고 싶다 → git reset --soft/mixed
• 모든 변경 사항을 날리고 싶다 → git reset --hard (위험!)
🎯 마무리하며…
Git에서 변경 사항을 되돌리는 방법에는 여러 가지가 있지만,
각각의 역할을 정확히 이해하고 사용해야 실수 없이 안전하게 롤백할 수 있습니다. 🚀
✅ 로컬에서 작업 중이라면 git reset을 활용할 수 있습니다.
✅ 협업 환경에서는 git revert를 사용하는 것이 안전합니다.
✅ 브랜치 변경은 git switch, 파일 변경은 git restore를 사용하세요.
이제 Git에서 실수 없이 원하는 방식으로 변경 사항을 되돌릴 수 있겠죠? 😊
다음 스낵깃도 기대해주세요! 🎯
📌 #Git #GitReset #GitRevert #GitRestore #GitCheckout #Git협업 #스낵깃 #중급편 🚀
실수해도 롤백할 수 있다니!! 감사합니다 ㅎㅎ

git restore은 직접 입력해본 기억이 없는데 새로운 지식 알아가네요 !! ㅎㅎ 감사합니당
@사과마을 저또한 사과마을님의 꾸준한 서폿 너무나 감사한걸용,,><좋은 하루 되세용~!

이번에도 야무집니다 정리도 나2스하고 나중에 정리방법이나 팁도 공유해주세요!
@파란고구마 나2스,,좋습니다 일목요연한 정리? 다음에 한 번 해보도록 하겠어요.