“git branch”와“git checkout -b”의 차이점은 무엇입니까?


답변:


259

git checkout -b BRANCH_NAME새 분기를 작성하고 새 분기를 체크 아웃하는 동안 새 분기를 git branch BRANCH_NAME작성하지만 동일한 분기에 남겨 둡니다.

다시 말해서 git checkout -b BRANCH_NAME당신을 위해 다음을 수행합니다.

git branch BRANCH_NAME    # create a new branch
git checkout BRANCH_NAME  # then switch to the new branch

44

git branch 분기를 작성하지만 체크 아웃 한 현재 분기에 남아 있습니다.

git checkout -b 분기를 작성하고 체크 아웃합니다.

다음과 같은 짧은 형식으로 간주 될 수 있습니다.

git branch name
git checkout name

"git branch는 브랜치를 생성하지만 체크 아웃 한 현재 브랜치에는 남아 있습니다."
Akash Verma

28
  • git branch: 모든 지점을 표시합니다
  • git branch newbranch: 새로운 지점을 만듭니다
  • git checkout -b newbranch: 새 분기를 작성하고 해당 분기로 즉시 전환합니다. git branch newbranch뒤에 나오는 것과 동일 합니다 git checkout newbranch.

24

전체 구문 :

git checkout -b [NEW_BRANCH] [FROM_BRANCH]

[FROM_BRANCH]는 선택 사항입니다. FROM_BRANCH가 없으면 git은 현재 분기를 사용합니다.


7

언급 할 또 다른 플래그가 있는데, 이것들과 관련이 있습니다.

git checkout -B BRANCH_NAME

이것은 내가 최근에 사용한 매우 유용한 명령입니다. 이 명령은 지정한 분기를 체크 아웃 하고 소스 분기를 기반으로 분기를 재설정 합니다.


2
더 설명해 주시겠습니까? 나는 git의 재설정이 무엇을 의미하는지 모른다
Mikaël Mayer

3
git 매뉴얼에서 :If -B is given, <new_branch> is created if it doesn't exist; otherwise, it is reset. This is the transactional equivalent of $ git branch -f <branch> [<start point>] $ git checkout <branch>
ddavison

기존 지점을 재사용 할 수 있다는 의미입니까?
Mikaël Mayer

1
checkout -B당신이 전환하고있는 지점이 다른 사람에 의해 공유하는 경우 위험? 나는 이것을 최근에 사용했으며 다른 지점의 변경 사항을 내가 전환 한 지점으로 자동 병합하는 것처럼 보였습니다.
Jeff

원격에서 다른 개발자 브랜치를 가져 와서 git checkout -B예를한다면, 병합하거나 대체 할 수도 있습니다
ddavison

-1

비슷한 두 가지 명령 형태가 있습니다 (git-scm docs 버전 2.11.1 참조).

git branch <branchname> <start-point>

git checkout -b <new_branch> <start_point>

후자 제 분기 명령을 실행 한 후 결제를 첨가. 이 형식에서 git-branch의 문서를 명시 적으로 참조합니다.

-b를 지정하면 git-branch [2]가 호출 된 다음 체크 아웃 된 것처럼 새 분기가 작성됩니다.


1
2011 년부터 접수 된 답변에 대한 새로운 정보는 추가되지 않습니다.
melpomene

실제로 <start-point>에 대한 새로운 정보를 추가합니다. 개인적으로 객체를 체크 아웃하거나 현재 분기를 이동하지 않고도 다른 위치의 객체에 분기를 만드는 것이 매우 유용하다는 것을 알았습니다. 실제로 git-reference가 의미 할 때 표기법을 [FROM_BRANCH]로 사용하는 것은 제 의견으로는 유용하지 않습니다.
Pshemy108

선택적 두 번째 인수는 질문과 관련이 없습니다. 두 명령 모두 동일하며 OP는 차이점을 요구했습니다. (실제로 그것이 필수적이라고 생각한다면, 나는 단지 수용된 답변에 의견을 추가했을 것입니다.)
melpomene

-1

본질적으로 :

A-git branch를 사용하면 간단하고 단순하게 분기를 만들 수 있습니다.

B -git checkout -b를 사용하면 분기를 만들고 동시에 전환 할 수 있습니다.

언제 사용합니까? 1-분기를 만들지 만 현재 분기를 유지하려는 경우 분기 지점. 2-git checkout -b 생성하고 전환 할 때. 보면 분기를 만들고 전환하는 것이 직관적입니다. 그래서 선택은 당신입니다 :)


4
이것은 2011 년부터 접수 된 답변에 대한 새로운 정보를 추가하지 않습니다.
melpomene
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.