[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