/
https://42jerrykim.github.io/ _index.md
git reset이 HEAD가 가리키는 위치를 옮기는 명령이라는 원리, soft/mixed/hard 세 모드가 04장의 3단계 모델 중 어디까지 되돌리는지, hard reset의 데이터 손실 위험을 정리한 Git 5부 첫 챕터다.
git revert가 히스토리를 재작성하지 않고 반대 변경을 담은 새 커밋을 추가하는 방식으로 안전하게 되돌리는 원리, reset과의 근본적인 차이, 병합 커밋을 되돌릴 때 -m이 필요한 이유를 정리한 Git 챕터다.
작업 트리의 파일 변경을 되돌리는 git restore와 오래된 git checkout -- <file> 표기, --source로 임의 커밋의 특정 파일만 되돌리는 법, 되돌린 변경이 복구 불가능한 이유를 정리한 Git 챕터다.
git cherry-pick이 다른 브랜치의 특정 커밋 하나만 골라 현재 브랜치에 재적용하는 원리, 핫픽스를 여러 릴리스 브랜치에 반영하는 대표 시나리오, 충돌 해결 절차와 커밋 해시가 바뀌는 이유를 정리한 Git 챕터다.
git rebase -i로 여러 커밋을 pick/squash/reword/drop 명령으로 재정리하는 법, 편집기에 열리는 todo 목록을 읽는 법, Pull Request를 올리기 전 커밋을 논리적 단위로 정돈하는 실전 절차를 정리한 Git 챕터다.
git reflog가 HEAD의 이동 이력을 별도로 기록해 hard reset이나 브랜치 강제 삭제로 잃어버린 것처럼 보이는 커밋을 되찾는 원리, reflog의 로컬 전용 특성과 만료 기간을 정리한 Git 5부 마무리 챕터다.
git stash가 커밋하지 않은 변경을 임시로 치워두고 나중에 복원하는 원리, 스택 구조로 여러 stash를 관리하는 법, 브랜치 전환 시 충돌을 피하는 대표 시나리오와 stash 자체가 커밋으로 구현된다는 사실을 정리한 Git 6부 첫 챕터다.
git clean이 .gitignore로도 걸러지지 않는 미추적 파일을 일괄 삭제하는 원리, 되돌릴 수 없는 삭제를 실행하기 전 -n(dry-run)으로 미리 확인해야 하는 이유, -d와 -x 옵션의 범위 차이를 정리한 Git 챕터다.
git add -p가 파일 하나를 hunk 단위로 쪼개 일부 변경만 선택적으로 스테이징하는 원리, 대화형 프롬프트의 각 명령(y/n/s/e) 의미, 한 파일에 섞인 서로 다른 목적의 수정을 커밋 단위로 분리하는 실전 절차를 정리한 Git 챕터다.
git blame이 파일의 각 줄을 마지막으로 수정한 커밋·작성자·날짜로 연결하는 원리, 이름 변경을 넘어 추적하는 -C/-M 옵션, 대량 서식 변경 커밋을 건너뛰는 ignore-revs 파일 설정을 정리한 Git 챕터다.