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

Section 45.3: 원격 저장소 정보 삭제하기

<name> 파라미터로 주어진 원격 저장소에 대한 정보를 삭제한다. 해당 원격 저장소에 대한 모든 환경설정과 원격 추적 (remote-tracking) 브랜치들이 삭제될 것이다.

dev 라는 이름의 원격 저장소 정보를 제거하는 아래 예제를 참고한다:

git remote rm dev

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

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

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

사용하던 원격 저장소가 다른 곳으로 이주 (migrate) 한 경우 이러한 작업이 필요한 경우가 있다. 원격 URL 정보를 변경하기 위해서는 아래와 같은 명령어를 이용한다:

git remote set-url

해당 명령어는 두개의 파라미터를 받는다: 기존 원격 저장소를 가리키는 이름과 (origin, upstream 등) 새로운 URL 정보가 바로 그것이다.

현재 설정되어 있는 원격 저장소 URL 을 먼저 아래와 같이 확인한다:

git remote -v origin https://bitbucket.com/develop/myrepo.git (fetch) origin https://bitbucket.com/develop/myrepo.git (push)

그런 다음, 아래와 같은 방법으로 해당 URL 을 변경할 수 있다:

git remote set-url origin https://localserver/develop/myrepo.git Check again your remote url: git remote -v origin https://localserver/develop/myrepo.git (fetch) origin https://localserver/develop/myrepo.git (push)

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

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

Section 45.1: 원격 저장소들 표시하기

현재 설정된 모든 원격 저장소들을 나열하고 싶다면, git remote 명령어를 사용한다.

해당 명령어 실행 시, 현재 구성되어 있는 각 원격 저장소들의 축약된 이름 (별칭들) 을 출력해 준다.

$ git remote premium premiumPro origin

보다 상세한 정보를 출력하고자 한다면, --verbose 혹은 -v 옵션을 사용할 수 있다. 출력 결과에 각 원격 저장소의 URL 정보와 종류 (push 혹은 pull) 가 추가적으로 포함될 것이다:

$ git remote -v premiumPro https://github.com/user/CatClickerPro.git (fetch) premiumPro https://github.com/user/CatClickerPro.git (push) premium https://github.com/user/CatClicker.git (fetch) premium https://github.com/user/CatClicker.git (push) origin https://github.com/ud/starter.git (fetch) origin https://github.com/ud/starter.git (push)

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

반응형

'번역 > Git Notes for Professionals' 카테고리의 다른 글

45.3: 원격 저장소 정보 삭제하기  (0) 2020.04.21
45.2: Git 저장소의 원격 URL 변경하기  (0) 2020.04.21
45: Git Remote  (0) 2020.04.20
44.2: Worktree 이동시키기  (0) 2020.04.16
44.1: worktree 사용하기  (0) 2020.04.16
GitNotes.45-0.md
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

Chapter 45: Git Remote

파라미터 설명
-v, --verbose 상세 출력 모드를 실행한다.
-m <master> add 와 함께 사용 시, 해당 원격 저장소에 대한 HEAD 를 <master> 브랜치로 설정한다
--mirror=fetch 원격의 Ref들이 refs/remotes 아래에 저장되는 대신, 마치 로컬 repo 의 일부분인 것처럼 mirroring 될 것이다
--mirror=push git push 명령어로 하여금 항상 --mirror 옵션이 주어진 것처럼 동작하게 만든다
--no-tags git fetch <name> 명령어 수행 시 원격 저장소로부터 tag 들은 읽어들이지 않는다
-t <branch> 주어진 원격 저장소에서 오직 <branch> 만을 추적 (track) 하도록 설정한다
-f 원격 저장소 설정이 완료된 이후 git fetch <name> 명령을 곧바로 실행하도록 한다
--tags git fetch <name> 명령어 실행 시 원격 저장소의 모든 tag 들을 읽어들이도록 한다
-a, --auto symbolic-ref 의 HEAD 를 원격 저장소의 HEAD 와 동일한 브랜치로 설정한다
-d, --delete 주어진 ref 들의 목록을 원격 저장소로부터 삭제한다
--add set-branches 명령어와 함께 사용 시, <name> 을 추적중인 (tracked) 브랜치들의 목록에 추가한다
--add set-url 명령어와 함께 사용시, 기존 URL 정보를 수정하는 대신에 새로운 URL 정보를 추가하도록 한다
--all get-url 과 함께 사용 시, 원격 저장소에 대한 모든 URL 정보를 반환한다
--delete set-url 과 함께 사용 시, <url> 부분과 일치하는 모든 URL 정보를 삭제한다
--push get-url 이나 set-url 과 함께 사용 시, fetch URL 이 아닌 push URL 에 대해 작업을 수행한다.
-n show 명령어와 함께 사용 시, 원격 HEAD 정보를 git ls-remote <name> 명령을 통해 먼저 얻어오는 대신, 로컬에 캐시된 정보를 사용하도록 한다.
--dry-run prune 과 함께 사용 시, 정리될 브랜치들의 목록을 표시만 하고 실제 정리작업을 수행하지는 않는다.
--prune 상응하는 로컬 사본을 갖지 않는 원격 브랜치들을 삭제한다.

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

반응형

'번역 > Git Notes for Professionals' 카테고리의 다른 글

45.2: Git 저장소의 원격 URL 변경하기  (0) 2020.04.21
45.1: 원격 저장소들 표시하기  (0) 2020.04.20
44.2: Worktree 이동시키기  (0) 2020.04.16
44.1: worktree 사용하기  (0) 2020.04.16
44: Worktree  (0) 2020.04.14
GitNotes.44-2.md
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

Section 44.2: Worktree 이동시키기

현재에는 (버전 2.11.0 기준으로) 기존에 이미 존재하고 있던 worktree 를 이동시키는 git 내장 기능은 제공되고 있지 않으며, 이는 공식적인 bug 로 기술되어 있다 (참고: https://git-scm.com/docs/git-worktree#_bugs).

역주: 해당 페이지를 번역 시점에 방문시 관련 내용이 기술되어 있지 않으며, 대신에 git worktree move <worktree> <new-path> 와 같은 명령어 설명이 있는 것으로 보아 현재에는 정식 지원하는 것으로 보입니다.

이러한 제약사항을 극복하기 위해서, .git reference 파일들에 대한 직접적인 수정을 통해 해결을 시도해 볼 수 있다.

이 예제에서는, repo 의 주 사본이 (main copy) /home/user/project-main 에 존재하고 있으며 보조적인 worktree 는 /home/user/project-1 에 위치해 있는 상태에서 /home/user/project-2 로 이동을 하고자 하는 상황을 가정하고 있다.

아래에 소개된 단계를 진행함에 있어서 중간에 다른 git 명령어를 수행하지 않도록 한다. git 의 garbage collector 가 동작하여 보조적인 tree 에 대한 reference 가 유실될 수 있다. 첫 단계부터 마지막 단계까지를 중단 없이 연속적으로 수행하도록 한다:

  1. worktree 의 .git 파일이 주 사본 tree 내의 새로운 위치를 가리키도록 변경한다. /home/user/project-1/.git 파일이 아래와 같은 내용을 갖게 될 것이다:
    gitdir: /home/user/project-main/.git/worktrees/project-2
  2. 주 사본의 .git 디렉토리 내의 worktree 이름을 아래와 같이 변경한다:
    $ mv /home/user/project-main/.git/worktrees/project-1 /home/user/project-main/.git/worktrees/project-2
  3. /home/user/project-main/.git/worktrees/project-2/gitdir 내의 reference 가 새로운 위치를 가리키도록 변경한다. 이 예제에서는, 해당 파일이 아래와 같은 내용을 갖게 될 것이다:
    /home/user/project-2/.git
  4. 마지막으로, worktree 를 새로운 위치로 이동시킨다:
    $ mv /home/user/project-1 /home/user/project-2

위 과정을 정확하게 수행하였다면, 존재하는 worktree 들에 대한 목록 요청은 새로운 위치를 반영하여 결과를 출력하게 될 것이다:

$ git worktree list /home/user/project-main 23f78ad [master] /home/user/project-2 78ac3f3 [branch-name]

이 단계에서는 git worktree prune 을 수행하여도 안전하다.

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

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

Section 44.1: worktree 사용하기

새로운 기능을 한창 구현하던 도중에, 긴급히 문제점 하나에 대한 수정 요청을 받은 상황을 가정해 보자. 보통은 이러한 상황에서 git stash 명령어를 사용하여 작업중이던 변경사항을 저장할 수 있겠으나, 작업 디렉토리의 변경 내역이 과도하여 (파일들이 새로이 생성되고, 이동되고, 삭제되었으며 수정사항들이 이곳저곳에 산재해 있는 등) 현재 진행상태에서 방해를 받고 싶지 않을 수 있다.

이러한 경우 임시로 연결된 (linked) worktree 를 추가하고, 긴급 수정 사항을 작성한 후, 작업 완료 후 해당 worktree 를 삭제함으로써 이전에 수행중이던 작업 내용을 방해받지 않고 이어나갈 수 있다:

$ git worktree add -b emergency-fix ../temp master $ pushd ../temp # ... 긴급 수정 사항 작성 ... $ git commit -a -m 'emergency fix' $ popd $ rm -rf ../temp $ git worktree prune

주의: 이 예제에서, 작성한 긴급 수정 사항은 여전히 emergency-fix 브랜치에 존재하는 상태이다. 이시점에서 git mergegit format-patch 를 수행할 필요가 있을 것이며 이후 emergency-fix 브랜치를 제거하면 될 것이다.

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

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

Chapter 44: Worktree

파라미터 설명
-f --force 기본적으로, add 명령어를 다른 worktree 에 의해 checkout 되어있는 <branch> 에 대해 수행하는 경우, 이러한 새로운 work tree 를 생성하고자 하는 요청이 거부되게 되어 있다. 이 옵션을 사용하면 이와 같은 안전 장치를 무효화 시킬 수 있다.
-b <new-branch> -B <new-branch> add 명령어와 사용하는 경우, (-b 나 -B 옵션과 상관없이 주어진 파라미터인) <branch> 로부터 <new-branch> 라는 이름의 새로운 브랜치를 생성하게 되며, 이렇게 새롭게 생성된 <new-branch> 를 새로운 working tree 로 checkout 하게 된다. 만약 <branch> 가 따로 주어지지 않았다면, HEAD 가 기본값으로 사용될 것이다. 기본적으로, -b 옵션 사용시 요청된 브랜치 이름이 이미 존재하는 경우 처리가 실패하게 되며, -B 옵션은 이러한 안전장치를 무효화 시켜 <new-branch> 의 내용을 <branch> 으로 재설정 하게 된다.
--detach add 명령어와 사용하는 경우 , 새로운 working tree 의 HEAD 를 detach 상태로 만든다.
--[no-] checkout 기본적으로, add 명령어는 주어진 <branch> 를 checkout 하게 되나, --no-checkout 을 사용하여 checkout 작업의 수행을 막아 sparse-checkout 구성과 같은 특별 설정을 수행할 수 있도록 한다.
-n --dry-run prune 명령어와 함께 사용 시, 실제 삭제 작업을 수행하지 않고 삭제 대상 목록을 표시만 하도록 한다.
--porcelain list 명령어와 함께 사용 시, 스크립트 등에서 읽어들이기 용이한 형태의 형식으로 출력하도록 한다. 이 형식은 Git 버전이나 사용자 환경 설정에 영향을 받지 않도록 유지되는 포맷이다.
-v --verbose prune 명령어와 사용 시, 실제 삭제가 이루어진 항목들을 출력해준다.
--expire <time> prune 명령어와 사용 시, <time> 으로 주어진 시간값보다 오래된 working tree 들만 정리하도록 한다.

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

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

Section 43.9: 검색식에 부합하는 가장 최근 커밋 찾기: <rev>^{/<text>},:/<text>

$ git show HEAD^{/fix nasty bug} # HEAD 로부터 검색을 시작한다 $ git show ':/fix nasty bug' # 모든 브랜치로부터 검색을 시작한다

콜론 (':') 다음에 슬래시 ('/'), 그리고 문자열이 따르는 경우에는, 문자열로 주어진 정규표현식에 부합하는 커밋 메시지를 갖는 커밋을 지칭하게 된다. 이렇게 지칭된 커밋은 모든 ref 로부터 접근 가능한 커밋 중 가장 최근의 커밋을 반환할 것이다.

주어진 정규표현식은 커밋 메시지 내에서 위치에 상관없이 일치 여부를 검사하게 될 것이다. 특정 문자열로 시작하는 메시지를 검색하기 위해서는, 다음과 같은 검색식을 활용할 수 있다. 예) :/^foo. 특수 검색식인 :/! 은 일치 판별을 위한 변경자 (modifier) 들을 위하여 예약되어 있다. :/!-foo 와 같은 검색식은 부정 일치 기준 표현을 위해 사용되며, :/!!foo 은 문자 ! 및 뒤따르는 문자열 foo 와의 일치 여부를 검사한다.

Revision 을 나타내는 문자열 뒤에 붙는 ^ 문자가 슬래시로 시작하는 문자열을 감싼 중괄호 앞에 위치한 경우, 이는 :/<text> 문법과 동일한 효과를 가지게 되어, ^ 문자 앞에 주어진 <rev> 로부터 접근 가능한 커밋들 중 조건에 부합하는 가장 최근 커밋을 반환하게 된다.

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

반응형

+ Recent posts