본 문서는 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)
'번역 > Git Notes for Professionals' 카테고리의 다른 글
3.8: 새로운 브랜치에 Upstream 정보 설정하기 (0) | 2019.08.22 |
---|---|
3.7: 새로운 원격 저장소 추가하기 (0) | 2019.08.22 |
3.5: Upstream 저장소로부터 변경 사항을 업데이트하기 (0) | 2019.08.19 |
3.4: 원격 저장소에서 이미 삭제된 브랜치들의 로컬 사본 정리하기 (0) | 2019.08.19 |
3.3: 현재 등록되어 있는 원격 저장소들을 나열하기 (0) | 2019.08.19 |