私は Git を初めて使用し、Mac OS 用の SourceTree を使用しており、分岐について質問があります。これは非常に小さなプロジェクトのためのもので、バージョン管理を使用するのは初めてです。これまでのところ、私はそれについて非常に基本的な理解しか持っていません。「ブランチ」をクリックして作成した最初のブランチは、2番目のコミットからブランチを作成しましたが、うまくいきました。しかし、2 回目にブランチを作成したのは、最初のコミットから離れていたため、SourceTree では同じ方法でブランチを作成することはできませんでした。ブランチの代わりにチェックアウトを使用する必要があり、デタッチされたヘッドが作成され、新しいブランチに名前を付ける必要がありました。同じ方法でブランチを作成できないのはなぜだろうと思っています。ありがとう!
1 に答える
2 つのコミットを持つマスター ブランチがあり、2 番目のコミットから最初のブランチを作成する場合、HEAD はマスター ブランチと同じコミットを指し、ブランチ コマンドはそこから開始されます。
最初のコミットを開始点として 2 番目のブランチを作成する場合、最初のコミットで HEAD をチェックアウトして最初に移動する選択肢はありません (その結果、HEAD は master ブランチから切り離されます。別のコミットを指している)。HEAD が適切なコミットを指している場合、ブランチの作成に進むことができ、この新しいブランチは最初のコミットから開始されます。
ブランチを作成するプロセスは両方の状況で同じです。唯一の違いは、最初の開始点がマスター ブランチの最後のコミットであり、HEAD がこのブランチにアタッチされていることです (つまり、HEAD とマスターが指していることを意味します)。同じコミット)。そして 2 番目のプロセスでは、別のコミットからブランチを開始する必要があります。これは単に HEAD を別のコミットに移動する必要があり、結果は切り離された HEADによって示されます。
これが、git の背後にあるロジックをよりよく理解するのに役立つことを願っています。
git についてさらに詳しく知りたい場合は、このチュートリアルを確認してください: Learn git branching
このチュートリアルは本当に素晴らしく、git の背後にある最も重要なメカニズムをよりよく理解するのに大いに役立ちます。