|
この記事は、WeChat公式アカウント「JS日语問」(著者:慧慧)からの転載です。転載の許可については、「JS日语問」公式アカウントまでお問い合わせください。 1. 頭Gitでは、複数のブランチが存在します。ブランチは、基本的にコミットオブジェクトへの可変ポインタです。一方、Headは現在作業中のローカルブランチを指す特別なポインタです。 簡単に言えば、HEAD はあなたが今いる場所を指します。 たとえば、現在マスター ブランチにいる場合、HEAD ポインターはマスター ブランチ ポインターを指します。 次に、`git checkout test` を呼び出して `test` ブランチに切り替えると、次の図に示すように、HEAD は `test` ブランチを指すようになります。 ただし、テスト ブランチで再度コミットすると、HEAD ポインターは引き続きテスト ブランチ ポインターを指し、テスト ブランチ ポインターは最後に作成されたコミットを指します (下の図を参照)。 HEAD ファイルは .git/HEAD ディレクトリに保存されており、その情報から HEAD が別のファイルを指していることがわかります。
ファイルにはハッシュ コードが含まれています。これは、マスター ブランチの最新のコミットに対応するハッシュ コードです。 したがって、ブランチを切り替えると、通常、HEAD ポインターは現在いるブランチを指し、ブランチに新しいコミットを作成すると、ブランチ ポインターは常に現在のブランチの最新のコミットを指します。 したがって、HEAD ポインターはブランチ ポインターにつながり、ブランチ ポインターは最新のコミットにつながります。 II. 作業ツリーとインデックスGit では、実際に作業するディレクトリは作業ツリーまたは作業領域と呼ばれます。 データベースと作業ツリーの間にはインデックスがあります。インデックスは、データベースへの送信準備に使用される領域であり、ステージング領域とも呼ばれます。 Git がコミットを実行すると、作業ツリーの状態がデータベースに直接保存されるのではなく、中間インデックス領域に設定された状態がデータベースに保存されます。 したがって、ファイルを送信するには、まずファイルをインデックス領域に追加する必要があります。 したがって、中間インデックスを使用することで、作業ツリーでの不要なファイルコミットを回避し、ファイルの変更の一部をインデックス領域に追加してコミットすることができます。 III. 相違点その場所から:
参考文献 https://backlog.com/git-tutorial/cn/intro/intro1_4.html https://juejin.cn/post/6844903598522908686 https://www.zsythink.net/archives/3412 |