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)

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

Section 3.5: Upstream 저장소로부터 변경 사항을 업데이트하기

Upstream 저장소를 이미 설정했다는 가정 하에, ("upstream 원격 저장소 설정하기" 섹션에서 설명했듯이) 아래와 같이 원격 저장소의 변경사항을 로컬에 업데이트 할 수 있다.

git fetch remote-name git merge remote-name/branch-name

pull 명령어는 위에서 소개한 fetchmerge 두 명령어를 한번에 수행하는 효과를 갖는다.

git pull

pull 명령어를 --rebase 옵션과 같이 사용하면 fetch 수행 후 merge 를 하는 대신 rebase 를 하게 된다.

git pull --rebase remote-name branch-name

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

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

Section 3.4: 원격 저장소에서 이미 삭제된 브랜치들의 로컬 사본 정리하기

원격 저장소에서 브랜치가 삭제되었다면, 로컬 저장소에서도 더 이상 유효하지 않은 해당 브랜치로의 참조 정보를 명시적으로 정리해야 한다.

특정 원격 저장소의 삭제된 브랜치 정보를 정리하려면:

git fetch [remote-name] --prune

모든 원격 저장소에 대해 삭제된 브랜치 정보를 정리하려면:

git fetch --all --prune

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

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

Section 3.3: 현재 등록되어 있는 원격 저장소들을 나열하기

현재 저장소에 등록된 모든 연관된 원격 저장소를 나열하려면 아래와 같이 입력한다 :

git remote

각각의 원격 저장소에 대해 fetch URL 과 push URL 을 포함하는 좀 더 상세한 정보를 나열하려면 아래와 같이 입력한다:

git remote --verbose

혹은 아래와 같이 간단하게 입력할 수도 있다:

git remote -v

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

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

Section 3.2: Git 원격 저장소의 URL 변경하기

우선 기존 저장소 정보를 아래와 같이 확인한다:

git remote -v # origin https://github.com/username/repo.git (fetch) # origin https://github.com/usernam/repo.git (push)

이제, 변경하고자 하는 저장소의 URL 정보를 새로 설정한다:

git remote set-url origin https://github.com/username/repo2.git # Change the 'origin' remote's URL

새로운 저장소의 URL 정보가 정상적으로 반영되었는지를 다시 확인한다:

git remote -v # origin https://github.com/username/repo2.git (fetch) # origin https://github.com/username/repo2.git (push)

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

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

Section 3.1: 원격 저장소의 브랜치 삭제하기

Git 에서 원격 브랜치를 삭제하려면 아래와 같은 명령어를 실행한다:

git push [remote-name] --delete [branch-name]

아래 명령어도 동일한 효과를 갖는다.

git push [remote-name] :[branch-name]

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

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

Section 2.14: 커미터 이름과 커밋의 (현재로부터의) 시간 정보를 한줄에 표시하기

tree = log --oneline --decorate --source --pretty=format:'"%Cblue %h %Cgreen %ar %Cblue %an %C(yellow) %d %Creset %s"' --all --graph

역주: 위 내용은 아마도 사용자의 ~/.gitconfig 위치에 추가된 [alias] 항목을 표시한 것 같습니다. "로그를 더 예쁘게 출력하기" 챕터를 참고하시면 git config 명령어를 이용하여 명령어 별칭 (alias) 을 지정하는 방법을 확인하실 수 있습니다.

예제

* 40554ac 3 months ago Alexander Zolotov Merge pull request #95 from gmandnepr/external_plugins |\ | * e509f61 3 months ago Ievgen Degtiarenko Documenting new property | * 46d4cb6 3 months ago Ievgen Degtiarenko Running idea with external plugins | * 6253da4 3 months ago Ievgen Degtiarenko Resolve external plugin classes | * 9fdb4e7 3 months ago Ievgen Degtiarenko Keep original artifact name as this may be important for intellij | * 22e82e4 3 months ago Ievgen Degtiarenko Declaring external plugin in intellij section |/ * bc3d2cb 3 months ago Alexander Zolotov Ignore DTD in plugin.xml

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

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

Section 2.13: 두 브랜치 사이의 로그 확인하기

git log master..foo

위 명령어는 master 브랜치에는 존재하지 않고 foo 브랜치에만 존재하는 커밋들을 보여줄 것이다.

브랜치 분기 이후에 어떤 커밋들을 추가했는지 확인할 때에 유용하다.

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

반응형

+ Recent posts