[git] HEAD 종류, 주소, 범위 기호 차이 정리
//------------------
* git HEAD 종류
HEAD : 현재 위치 commit, checkout 등의 명령에 의해 변경됨
FETCH_HEAD : fetch 명령으로 가져온 내용의 가장 최신 위치
ORIG_HEAD : 이전 HEAD 의 위치
MERGE_HEAD : merge 명령 수행중에 생성됨, merge 할 commit
//-----------------------------------------------------------------------------
* 범위 : .. 와 ... 의 차이
https://git-scm.com/docs/git-diff
$ git diff A..B
(= git diff A B )
- A 와 B 를 비교
$ git diff A...B
(= git diff $(git merge-base A B) B )
- (A 와 B의 공통 조상)과 B를 비교
//-----------------------------------------------------------------------------
* [ ^ , ~ , @ ] 차이
HEAD^2 : 2번째 부모
- HEAD^ : 바로위 부모
HEAD~2 : 2단계위의 조상
HEAD@{2} : 2번째 이전 커밋 , reflog로 확인 가능
//-----------------------------------------------------------------------------
https://git-scm.com/docs/git-rev-parse#Documentation/git-rev-parse.txt-emltngtltpathgtemegem0READMEememREADMEem
//-----------------------------------------------------------------------------
https://backlog.com/git-tutorial/using-branches/git-switch-branches/
//-----------------------------------------------------------------------------
// 참고
https://stackoverflow.com/questions/2221658/whats-the-difference-between-head-and-head-in-git
https://git-scm.com/docs/git-rev-parse#_specifying_revisions