GitNotes.43-8.md
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

Section 43.8: 브랜치와 tag 를 역참조 (de-reference) 하기: <rev>^0, <rev>^{<type>}

경우에 따라, 특정 명령어의 동작 방식은 주어진 파라미터의 종류가 브랜치 이름인지, tag 이름인지, 아니면 임의의 revision 인지에 따라 달라지기도 한다. 후자의 경우가 필요하다면, "역참조 (de-referencing)" 문법을 사용할 수 있다.

접미어 ^ 를 중괄호로 둘러싸여진 객체 종류의 이름 (tag, commit, tree, blob) 과 함께 사용할 경우 (예: v0.99.8^{commit}) <rev> 에 해당하는 객체에 대해 <type> 에 해당하는 객체를 찾아내거나, 혹은 더이상 역참조할 대상이 없을때까지 재귀적으로 역참조를 수행한다. <rev>^0 은 <rev>^{commit} 의 축약 버전의 명령어에 해당한다.

$ git checkout HEAD^0 # 최신의 Git 에서는 'git checkout --detach' 에 해당한다

접미어 ^ 뒤에 빈 중괄호 쌍이 바로 이어서 사용되는 경우, (예: v0.99.8^{}) 비 tag 형태의 객체를 찾을때까지 역참조를 수행한다.

아래의 명령어 결과와

$ git show v1.0 $ git cat-file -p v1.0 $ git replace --edit v1.0

다음 결과를 비교해 보도록 하자.

$ git show v1.0^{} $ git cat-file -p v1.0^{} $ git replace --edit v1.0^{}

역주: 위 테스트는 lightweight tag 가 아닌, -a 등으로 생성된 annotated tag 에 대해서 수행하여야 합니다.

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)

반응형

+ Recent posts