2017-07-17 15 views

答えて

2

短いでは、何も起こりません。 branchをチェックする方が簡単で最新の状態に保ちます(最新のcommit)。 commitでチェックすると、でなくても、は最新の支店の状態を遅らせることができます。

git checkout <branch>は、コミット時に<branch>をチェックアウトします。すなわち、HEADは、そのブランチの最後のコミットを指します。

git checkout <commit>は少し異なります。 <commit>をチェックアウトすると、最新のコミットを指している可能性があります。したがって、HEADと同期します。 しかしあなたはまた、別のにcheckout以前、すなわち、detached HEAD状態であなたを置くことになるだけでなくコミットHEADポイントは、あなたのgitの履歴(最も可能性の高い最新)にコミットすることができます。 HEADもリセットして、チェックアウトした現在のコミットを指すようにすることができます。

通常、ブランチの最新バージョンを使用していることがわかっています(アップストリームの変更がない限り、git pull)。

Hereは、詳細を知りたい場合はgit checkoutのドキュメントです。

1

checkout <commit>checkout <branch>どちらも、それがコミット<commit><branch>引数で指定されたことにより、記録されたファイルの状態と同じを探して終わるように、彼らはあなたの作業ツリー内のファイルおよびディレクトリに対して必要な変更を行いますという点で同じです。

さらに、後者(<branch>)は、アクティブなブランチとして指定したブランチを設定します。そうすることで、「支店にいる」というコンセプトが完成します。

ブランチはコミットに与えられた移動可能なラベルで、より新しいコミットに自動的に移動します。コミットです。これらのラベルは、コミットをより管理しやすく、覚えやすいものにします。

checkout <commit>detached stateに入れることがあります。この状態では、カスタムラベルを取得しません。しかし、後でコミットを作成し、その場所に新しいブランチを作成することができます。結局、何日後に、デタッチ状態では動作するか否か、garbage collectedを取得しますブランチ(またはタグ)で標識されないコミット事実以外の個人的な好みおよび/または利便性の問題があります。

2

単純にgitのチェックアウトBRANCH_NAMEは、あなたがその名前を言及コミットにかかるように、その分岐のwheresのコミット最新のが表示されます。

0

私は「彼らが同じである」または「悪い何も起こりません」のようなものを言う上記のコメントに同意できません。

これらは重要な点ではっきりと異なります。上記の記事でantakが正しく記述しましたが、私は潜在的な危険性を強調したいと思います。これは、新しいコミットを追跡できなくなる可能性があるということです。

ブランチでチェックアウトすると、ブランチポインタがコミットをポイントし、次にコミットすると新しいコミットが追加され、ブランチポインタも一緒に移動します。これは通常、人々が起こりたいものです。

コミットでチェックアウトしてから新しいコミットを行う場合、その新しいコミットを指すブランチはありません。 HEADだけがそれを指し示します。

この時点で別のブランチをチェックアウトしていた場合、その新しいコミットの履歴が失われる可能性があります。 (ref-logのような特別なことが分からなければ、それを失うだろう)。

antakが指摘しているように、新しいコミットを行い、その時点でブランチを作成することもできますが、元の質問に対する答えがわからない場合は、右?

簡単に言えば、特別な理由がない限り、ブランチをチェックアウトしたいと思うのです。

関連する問題