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

Section 14.8: 브랜치 이름 변경하기

현재 checkout 한 브랜치의 이름을 변경하려면:

git branch -m new_branch_name

checkout 한 상태가 아닌 다른 브랜치의 이름를 변경하려면:

git branch -m branch_you_want_to_rename new_branch_name

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

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

Section 14.7: 고아(orphan) 브랜치 (부모 커밋이 없는 브랜치) 생성하기

git checkout --orphan new-orphan-branch

이렇게 만들어진 새로운 브랜치에 생성되는 첫번째 커밋은 부모 커밋을 가지고 있지 않으며 어떠한 다른 브랜치나 커밋으로부터 단절된 새로운 history 의 시작점이 될 것이다.

출처

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

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

Section 14.6: 로컬에서 브랜치 삭제하기

$ git branch -d dev

위 명령어 수행 시, dev 라는 이름의 브랜치가 다른 브랜치에 이미 merge 가 완전히 되어 있는 경우에 한하여 삭제를 수행함으로써 변경사항이 유실되지 않도록 보장한다. 만약 다른 브랜치로 아직 merge 되지 않은 변경사항이 있어 해당 변경사항이 유실될 우려가 있는 경우에는, git branch -d 명령이 실패할 것이다:

$ git branch -d dev error: The branch 'dev' is not fully merged. If you are sure you want to delete it, run 'git branch -D dev'.

경고 메시지에 표시된 대로, -D 옵션을 아래와 같이 사용하여 삭제를 강행할 수도 있다 (다른 브랜치에 merge 되지 않은 변경사항들은 유실될 것이다):

$ git branch -D dev

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

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

Section 14.5: 원격 브랜치를 추적(tracking) 하는 새로운 브랜치 checkout 하기

원격 브랜치인 origin/feature 를 추적(track) 하는 새로운 브랜치를 생성하는 방법은 아래 세가지가 있다:

  • git checkout --track -b feature origin/feature,
  • git checkout -t origin/feature,
  • git checkout feature - 로컬에 feature 라는 이름의 브랜치가 존재하지 않으며 feature 라는 브랜치를 가지고 있는 원격 저장소가 하나만 있는 경우.

원격 브랜치를 추적(track) 하도록 upstream 정보를 설정하기 위해서는 아래와 같이 입력한다:

  • git branch --set-upstream-to=<remote>/<branch> <branch>
  • git branch -u <remote>/<branch> <branch>

부가설명:

  • <remote> : origin, develop 혹은 사용자가 생성한 원격 저장소
  • <branch> 원격 브랜치를 추적(track) 하도록 설정할 사용자의 로컬 브랜치

각 로컬 브랜치들이 어떤 원격 브랜치를 추적(track) 하고 있는지를 확인하려면 아래와 같이 입력한다:

git branch -vv

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

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

Section 14.4: 직전에 사용하던 브랜치로 빠르게 전환하기

가장 마지막으로 작업하던 브랜치로 빠르게 전환하고 싶다면 다음과 같이 입력한다:

git checkout -

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

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

Section 14.3: 원격 브랜치 삭제하기

"origin" 원격 저장소의 브랜치를 삭제하려면, Git 1.5.0 이후 버전에서는 아래와 같이 입력할 수 있고,

git push origin :<branchName>

Git 1.7.0 이후 버전에서는 아래와 같이 입력할 수 있다 .

git push origin --delete <branchName>

원격 브랜치를 추적(tracking) 하는 로컬 브랜치를 삭제하려면 아래와 같이 수행한다:

git branch --delete --remotes <remote>/<branch> git branch -dr <remote>/<branch> # 위 명령어의 축약버전 git fetch <remote> --prune # 유효하지 않은 tracking 브랜치들을 일괄 삭제한다 git fetch <remote> -p # 축약 버전

로컬 브랜치를 삭제하려면 아래와 같이 수행한다. 대상 브랜치에 다른 브랜치로 merge 되지 않은 변경사항이 있을 경우에는 삭제가 되지 않음에 유의하라:

git branch -d <branchName>

merge 되지 않은 변경사항이 존재하는 경우에도 삭제를 강행하려면 아래와 같이 입력한다:

git branch -D <branchName>

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

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

Section 14.2: 브랜치들의 목록 나열하기

Git 에서는 브랜치의 목록을 표시하기 위한 다양한 명령어들을 지원한다. 이 명령어들은 기본적으로 커맨드 라인에서 주어지는 옵션값에 따라 특정 조건에 해당하는 브랜치들을 나열하는 git branch 명령어의 기능을 이용할 것이다. Git 에서는 가능한 경우 현재 선택된 브랜치 옆에 별표(*)를 표기해줄 것이다.

목적 명령어
로컬 브랜치들의 목록을 표시한다 git branch
상세 출력 (verbose) 옵션을 활성화하여 로컬 브랜치들의 목록을 표시한다 git branch -v
원격과 로컬 브랜치 전체 목록을 표시한다 git branch -a OR git branch --all
원격과 로컬 브랜치 전체 목록을 상세 출력 모드로 (verbose) 표시한다 git branch -av
원격 브랜치들의 목록을 표시한다 git branch -r
원격 브랜치들의 목록을 가장 최근 커밋 정보와 함께 표시한다 git branch -rv
현재 브랜치에 merge 완료된 브랜치들의 목록을 표시한다 git branch --merged
현재 브랜치에 merge 완료되지 않은 브랜치들의 목록을 표시한다 git branch --no-merged
특정 커밋을 포함하는 브랜치들을 표시한다 git branch --contains [<commit>]

주의:

-v 옵션에 v를 추가하여 upstream 브랜치 정보를 함께 표시할 수 있다 예: git branch -avv 혹은 git branch -vv. 빨간색으로 표시되는 브랜치들이 원격 브랜치들이다.

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

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

Section 14.1: 새로운 브랜치를 만들고 checkout 하기

현재 브랜치에서 이동하지 않으면서 새로운 브랜치를 만들고 싶다면, 아래 명령어를 이용한다:

git branch <name>

일반적으로, 브랜치 이름은 공백을 포함하여서는 안되며 이 장에서 소개되는 각종 명세사항 (specification) 을 따라야 한다. 현재 존재하고 있는 브랜치로 전환하고자 하면 아래와 같이 입력한다:

git checkout <name>

새로운 브랜치를 생성하고 바로 해당 브랜치로 전환하려면:

git checkout -b <name>

현재 브랜치의 가장 마지막 커밋 (HEAD 라고도 알려져 있는) 가 아닌 특정 커밋을 시작점으로 하는 브랜치를 생성하로 싶다면, 아래 명령어 중 하나를 이용한다:

git branch <name> [<start-point>] git checkout -b <name> [<start-point>]

로 표시된 부분은 git 내에 존재하는 어떠한 revision 도 될 수 있다 (예: 특정 브랜치 이름, SHA 커밋 해시값, 혹은 HEAD 나 tag 이름과 같은 symbolic reference):

git checkout -b <name> some_other_branch git checkout -b <name> af295 git checkout -b <name> HEAD~5 git checkout -b <name> v1.0.5

원격 브랜치로부터 로컬 브랜치를 생성하려면 (<remote_name> 의 기본값은 'origin' 이다):

git branch <name> <remote_name>/<branch_name> git checkout -b <name> <remote_name>/<branch_name>

만약 해당 브랜치 이름이 원격에만 존재하고 로컬에는 아직 존재하지 않는다면, 아래와 같이 간단하게 입력할 수도 있다.

git checkout -b <branch_name>

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

git checkout -b <branch_name> <remote_name>/<branch_name>

가끔씩은, 최근 몇가지의 커밋들을 새로운 브랜치로 이동시킬 필요가 있을 수 있다. 이는 현재 브랜치에서의 브랜치 생성 후 "되돌리기"(rolling back) 를 통해 달성할 수 있다:

git branch <new_name> git reset --hard HEAD~2 # Go back 2 commits, you will lose uncommitted work. git checkout <new_name>

위 명령어의 실행 과정을 도식화하면 아래와 같다:

초기 상태: A-B-C-D-E (HEAD) ↑ master `git branch <new_name>` 실행 직후: newBranch ↓ A-B-C-D-E (HEAD) ↑ master `git reset --hard HEAD~2` 실행 직후: newBranch ↓ A-B-C-D-E (HEAD) ↑ master

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

반응형

+ Recent posts