2017-01-14 16 views
0

リモートリポジトリに既に存在するがローカルリポジトリに存在しない新しいブランチを作成すると、おそらく、次の2つのコマンドを実行できます。git checkout -b hotfix origin/hotfixgit branch hotfix origin/hotfixここで、hotfixはちょうど私が仮定したブランチです。では、これら2つのコマンドの違いは何ですか?両方とも、すでに両方のブランチがすでに上流ブランチを追跡しているようです。Gitコマンド:git checkout -b <branch><リモートブランチ>とgitブランチ<branch><リモートブランチ>の違いは何ですか?

誰でも説明できますか?

答えて

2

gitブランチのみを作成しますが、ヘッドは以前のブランチを指しています。たとえば、現在のブランチがマスターで、gitブランチabcを実行すると、abcブランチが作成されますが、マスターが現在のブランチだったので、もし

Gitのチェックアウトは-b ABC、最初の分岐を作成の上に枝プラスチェックアウトを作成する...、ポスト実行ABCは現在のブランチ

になりそう両方が新しいブランチを作ります..最初の最初のものはそのブランチのブランチ+チェックアウトの作成です

+0

さらに、 'git checkout -b'を使って新しいブランチを作成すると、create-and-switchは* *と*チェックアウトした場合、またはチェックアウトに失敗した場合は、新しいブランチは作成されません。 'git branch []'で、新しいブランチの後続の 'git checkout'が失敗しても、新しいブランチが作成されます。通常、この違いは無関係ですが、チェックアウトが失敗した場合に新しいブランチを自動的に削除したい場合は、 'git checkout -b'を使ってそれを取得することができます。 – torek

+0

@torek非常に興味深いコメント!しかし、ブランチの作成は成功しましたが、どのような状況でチェックアウトに失敗しますか? –

+0

@ KazuyaTomita: ''がないと、チェックアウトが失敗する原因はローカルファイルシステムエラー(ディスク領域不足など)だけです。 ' 'を指定すると、インデックスや作業ツリーに未だコミットされていないコミットされていない変更があれば、新しいコミットに切り替えることができなくなります。詳細はhttp://stackoverflow.com/q/22053757/1256452を参照してください。 – torek

関連する問題