깃허브 특강
몰랐던 내용만 정리
Head

- 새로 만들어진 버전은 head가 가리킨다
- 대리자는 master이며, 대리자가 대신 움직인다
- Head가 가리키는 버전이 새로 만들어진 버전의 부모다
- 새로만든 버전을 head(master)가 따라간다
- 각각의 버전은, 버전이 만들어진 시점의 stage area의 스냅샷이다 (버전의 엄격한 정의)
- Head는 working directory, stage area가 어떤 버젼인지 알려준다
- checkout은 head를 바꾸는 명령어
- 결국 master는 가장 최신 버전, head는 자유 자재라고 생각하면 될 듯
- 여기서 이전으로 돌아간 후, commit을 생성하고 다시 master로 돌아가면 새로 생성한 commit 들은 사라져 버림
- 복구 가능! 다만 log로 이름을 찾아서 해야 함
Branch
- 사라진 commit 들은 보관, 실험의 용도로 사용 가능
- log의 이름은 너무 귀찮잖아
- branch를 만들면 서로 각자 다른 길을 가게 됨
- 가지와 같은 구조
- 만약 branch 끼리 병합했다면? 부모는 2개 branch 모두
- 병합한 branch가 변화하고 병합된 branch는 변화 X
- 병합하는 code는 merge
- master는 일종의 기본 branch인 것
- 삭제도 가능하나 안하기로 약속
Reset
git reflog
git reset --hard <commit log>
- Head가 가리키는 Branch를 특정 commit으로 되돌리기