티스토리 뷰
✔️ git checkout
git checkout [커밋해시]
: 헤드를 브랜치에서 분리(Detached HEAD) 후 커밋을 참조하도록 하는 것
❕ 커밋해시는 git log (--oneline)으로 확인가능!
❗ git switch 명령어로 다시 브랜치로 돌아갈 수 있음
git switch -
↑ 내가 떠났던 브랜치로 돌아감
🙋🏻♀️ 그럼 checkout 상태에서는 뭘 할 수 있죠?
💡 커밋을 둘러보고, 파일을 확인하고, 뭔가를 복사해서 어딘가로 갖고 가는 것 등 (관찰)
🙋🏻♀️ 전 예전 커밋으로 돌아가서 다시 시작하고 싶은데요?
💡 git checkout 명령어로 (1)이전 커밋으로 돌아가서 (2)새로운 브랜치를 만들고 (3)새로 작업하기!
git checkout HEAD~n
: HEAD에서 n개 이전 커밋을 참조
git checkout HEAD [파일명]
git checkout -- [파일명]
: 작업을 많이 했는데(아직 변경사항 커밋X), 그냥 마지막 커밋으로 되돌리고 싶을 때 사용!
✔️ git restore - 작업 실행 취소
git restore [파일명]
: 마지막 커밋 이후의 변경 사항을 취소
❕ 커밋되지 않은 변경 사항을 제거하는 것은 확실한 경우에만! (변경사항을 잃어버리면 깃에는 기록이X)
git restore --source HEAD~n [파일명]
git restore --source [커밋해시] [파일명]
: 해당 파일을 해당 커밋 상태로 변경 (분리된 헤드X but 파일은 변경됨!)
🙋🏻♀️ 만약 다시 원래대로 돌아가고 싶다면??
💡 git restore [파일명]으로 다시 돌아가기!
git restore --staged [파일명]
: 스테이징 된 파일을 언스테이징하기!
✔️ git reset - 저장소를 특정 커밋으로 재설정
git reset [커밋해시]
: 커밋만 리셋, 변경사항은 여전히 워킹 디렉토리에!
❕잘못된 브랜치에서 커밋 했을 때 유용 (작업 유지 + 다른 브랜치로 이동)
git reset --hard [커밋해시]
: 커밋 + 변경사항 모두 리셋
❕브랜치 기준으로 작동 (내가 없앤 커밋에 대해 알고 있는 모든 브랜치에서 이 커밋을 제거한 것이 아님!)
✔️ git revert
git revert [커밋해시]
🙋🏻♀️ reset과 revert 뭐가 다르죠?
💡 reset(재설정)은 커밋을 완전히 제거하고 브랜치 포인터를 뒤로 이동! (커밋이 처음부터 존재하지 않았던 것처럼!)
💡 revert(되돌리기)는 새로운 커밋을 만들고, 그 새로운 커밋에서 이전 커밋의 변경 사항을 취소 ← 협업할 때 사용!!
'버전관리' 카테고리의 다른 글
[GitHub] Fetch와 Pull (0) | 2023.07.09 |
---|---|
[GitHub] 깃허브의 기초 (0) | 2023.07.09 |
[Git] 스태시(Stash)의 모든 것 (0) | 2023.07.08 |
[Git] Git Diff로 변경사항 비교하기 (0) | 2023.07.08 |
[Git] 브랜치 병합하기 (0) | 2023.06.24 |