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

Section 3.6: ls-remote

git ls-remote 는 원격 저장소를 clone 이나 fetch 하지않고도 해당 저장소의 정보를 조회해 볼 수 있는 독특한 명령어이다.

이 명령어는 요청된 원격 저장소의 refs/heads 와 refs/tags 목록을 표시해줄 것이다.

가끔씩은 refs/tags/v0.1.6 같은 항목과 함께 refs/tags/v0.1.6^{} 항목이 표시될 때도 있다: ^{} 표시는 dereferenced annotated tag (해당 tag가 실제로 가리키고 있는 커밋) 를 나타낸다.

역주: Git 에서 tag 는 metadata 가 없는 lightweight tag 와 metadata 를 포함한 annotated tag 이 있으며, annotated 의 경우에는 해당 tag 객체 외에 tag 가 가리키고 있는 객체를 dereference 할 수 있습니다.

Git 2.8부터는 (March 2016 3월 이후 버전부터), tag 하나에 대해 위와 같이 중복된 항목을 표시하지 않고 tag 객체들만 나열할 수 있는 옵션이 추가되었다:

git ls-remote --refs

역주: 원문에서는 옵션 이름도 '--ref`로 되어 있고 설명도 "list directly those dereferenced tags" 라고 되어 있으나, 최신 홈페이지 확인 및 실제 테스트 해보면 tag 객체 자체에 대한 정보가 표시되어 내용을 수정하였습니다.

또한, 이 명령어는 "url.<base>.insteadOf" config 설정이 되어 있는 경우 원격 저장소 접근시에 사용되는 실제 url 을 확인하고자 할 때에 유용하게 사용할 수 있다.

만약 git remote --get-url <a remote name> 의 반환값이 https://server.com/user/repo 이고, Git 상에서 git config url.ssh://git@server.com:.insteadOf https://server.com/ 와 같은 설정을 해 놓았다면, 다음과 같은 결과를 얻을 수 있을 것이다:

git ls-remote --get-url <a remote name> ssh://git@server.com:user/repo

역주: url.~.insteadOf 설정은 원격 저장소 url 의 일부를 실제 원격 저장소 접근시 지정한 문자열로 자동 치환시킬 때 사용하는 설정입니다.

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

반응형

+ Recent posts