「gitブランチ」と「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ブランチはブランチを作成しますが、チェックアウトしたFROMから現在のブランチに残ります」と言いましょう。
Akash Verma

28
  • git branchすべてのブランチを表示します
  • git branch newbranch新しいブランチを作成します
  • git checkout -b newbranch新しいブランチを作成し、すぐにそのブランチに切り替えます。これは、がgit branch newbranch続くのと同じgit checkout newbranchです。

23

完全な構文:

git checkout -b [NEW_BRANCH] [FROM_BRANCH]

[FROM_BRANCH]はオプションです。FROM_BRANCHがない場合、gitは現在のブランチを使用します。


7

これらに関連する、言及すべきもう1つのフラグもあります。

git checkout -B BRANCH_NAME

これは、最近使用した非常に便利なコマンドです。このコマンドは、指定したブランチをチェックアウトし、ソースブランチに基づいてブランチをリセットします


2
もっと説明できますか?私はgitのための手段リセットかわからない
ミカエル・メイヤー

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

つまり、既存のブランチを再利用できるということですか?
ミカエルメイヤー2014

1
であるcheckout -Bあなたに切り替えている枝が他のユーザーによって共有されている場合、危険な?私は最近これを使用しましたが、他のブランチの変更が、切り替え先のブランチに自動的にマージされたようです。
ジェフ

リモートから別の開発者ブランチをフェッチし、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 2017年

実際には、<start-point>に関する新しい情報が追加されます。最初にオブジェクトをチェックアウトしたり、現在のブランチを移動したりすることなく、他の場所にあるオブジェクトにブランチを作成するのに、私は個人的に非常に便利だと思いました。実際にgit参照が意図されているときに[FROM_BRANCH]として表記を使用することは、私の意見では役に立ちません。
Pshemy108

オプションの2番目の引数は、質問には関係ありません。それは両方のコマンド間で同じであり、OPは違いを求めていました。(あなたが本当にそれが不可欠だと思うなら、私は単に受け入れられた回答にコメントを追加したでしょう。)
メルポメーン

-1

基本的に:

A-gitブランチを使用すると、単純でシンプルなブランチを作成できます。

B -git checkout -bを使用すると、ブランチを作成すると同時にブランチに切り替えることができます。

いつ使用しますか?1-ブランチを作成したいが現在のブランチにとどまる場合のgitブランチ。2-作成して切り替えたい場合はgit checkout -b 見れば、ブランチを作成してそれに切り替えるのは直感的です。したがって、選択はあなた次第です:)


4
これは、2011
。– melpomene
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.