git の基本的な処理フロー
GitHub や GitLab などのコード ホスティング プラットフォームの人気により、Git はバージョン管理ツールとしてよく話題になり、Git がどのように機能するかを理解する人が増えています。ただし、Git の外観を理解することは、Git を使用することだけであり、Git を真に理解するには、Git の基本的な処理フローも理解する必要があります。
Git の基礎となる構造の概要
Git は、集中バージョン管理システム (SVN など) に対応する分散バージョン管理システムです。Git の分散的な性質のため、各 Gitリポジトリは完全なリポジトリです。
Git の作業ディレクトリには、Git ウェアハウス オブジェクトと作業ツリーの 2 つの部分が含まれています。Git ウェアハウス オブジェクトと作業ツリーのステータスは、それぞれエイリアス、ハード リンク、ソフト リンク間の関係に類推できます。
Git の基盤となるファイル ストレージ メソッド
Git の基盤となるファイル ストレージ テクノロジは、主に 2 つの側面に分かれています。
- オブジェクト ストレージ
- 圧縮可能なファイルの使用法format
オブジェクト ストレージ
Git はすべてのコード変更を個別のオブジェクトとして保存します。その中で、主要なオブジェクトは BLOB、ツリー、コミットです。このうち、blob はコード内容のスナップショット、ツリーはファイルとディレクトリのセットのスナップショット、コミットはコード変更のスナップショットです。
注意深い読者は、これらのオブジェクトが Linux システムの i ノード メカニズムに似ていることに気づくでしょう。inode ファイル ノードはファイルまたはディレクトリを表すことができ、inode ファイル ノードにはディスク ブロック番号などの情報が含まれます。 Git では、blob は i ノード ファイル ノード内のファイル コンテンツのスナップショット オブジェクト、ツリーは i ノード ディレクトリのスナップショット オブジェクト、コミットは複数の i ノード ファイル ノードで構成されるバージョン スナップショットです。
Git では、通常、オブジェクトは SHA1 ハッシュとして表されます。 SHA1 ハッシュ値は、40 文字の 16 進文字列です。 Git は SHA1 ハッシュを使用して、各バージョン、各ファイルとディレクトリ、および各コミットに一意の識別子を割り当てます。
圧縮可能なファイル形式の使用
Git の最下層では、コードの変更を処理するためにメタデータの一部をファイルに追加するテクノロジーが使用されています。メタデータは、2 つのコミット間の変更情報などの中間状態であることが多く、この情報は小さなファイルに圧縮でき、必要に応じて解凍できます。
Git で使用されるデフォルトのファイル形式は、packfile 形式です。 Packfile は、Git がクロスネットワーク操作を実行するときに転送するために、複数のオブジェクトを 1 つのファイルにアーカイブできる高圧縮の Git オブジェクト ストレージ形式です。
Git の基礎となるコア処理プロセス
前のコンテンツでは、Git オブジェクトと基礎となるファイル ストレージ テクノロジについて詳しく理解しました。次に、Git の基礎となるコア処理プロセスに入ります。
Git 初期化プロセス
- Create directory.git/
- Create subdirectory.git/objects/
- Create subdirectory.git/refs/
- 空の HEAD ファイルを作成する ##空のインデックス ファイルを作成する
- #Git の基本的なファイル コマンド
ここでは、まず Git について説明します。さまざまな基本的なファイル コマンド:
hash-object コマンド: ファイルを Git オブジェクトに変換するために使用されます。- cat-file コマンド: Git オブジェクトの内容を表示するために使用されます。
- ls-tree コマンド: 特定の Git ツリーの内容を表示するために使用されます。
- update-index コマンド: Git インデックスにファイルまたはディレクトリを追加するために使用されます。
- write-tree コマンド: Git インデックスを Git ツリー オブジェクトに変換するために使用されます。
- Git の送信プロセス
Git の送信プロセスは、引き続き Blob、Tree、Commit の 3 つのフィールドで構成されます。
Blob: ファイル名、ファイルタイプ、そしてもちろん SHA1 ハッシュ値などを含む、コード内の各ファイルのメタデータを表すために使用されます。- ツリー: 前の手順の BLOB に基づいて、対応するファイルとディレクトリを組み立ててスナップショット ツリーを形成し、Git ノードに保存します。
- コミット: 上記の 2 つのオブジェクトと送信されたユーザー情報をアセンブルして、バージョン スナップショットを形成します。
- 上記の手順では、Blob 変換を行う場合、-g パラメータを追加する必要があるなど、注意が必要な点がいくつかあります。
Git のブランチ プロセス
Git では、ブランチは最後に送信されたオブジェクトを指す独立したポインタです。ブランチには、ローカル ブランチとリモート ブランチの 2 種類があります。
ローカル ブランチの作成後、新しい送信を追加すると、HEAD が最新の送信を指すように自動的に移動します。この期間中、checkout コマンドを使用して、異なるブランチ間を切り替えます。リモート ブランチとは、異なるローカル ライブラリ間でコードを共同作業する方法を指します。
概要
この記事では、Git の基盤となるファイル ストレージ メソッドと Git の基盤となるコア処理プロセスの 2 つの側面から、Git の基盤となる処理プロセスについて詳しく説明します。 Git オブジェクトと基礎となるファイル ストレージ テクノロジの説明を通じて、Git の基礎となるアーキテクチャを理解します。この記事では、Git の初期化プロセス、Git の基本ファイル コマンド、Git の送信プロセス、Git のブランチ プロセスなど、Git の基礎となるコア処理プロセスについても紹介します。 Git の基礎となる処理フローを深く理解することで、Git の動作メカニズムをより深く理解し、バージョン管理に Git をより効率的に使用できるようになります。
以上がgit の基本的な処理フローの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Gitはバージョン制御システムであり、GithubはGitベースのコードホスティングプラットフォームです。 GITは、コードバージョンを管理し、ローカル操作をサポートするために使用されます。 GitHubは、問題の追跡やPullRequestなどのオンラインコラボレーションツールを提供しています。

gitとgithubは同じものではありません。 Gitはバージョン制御システムであり、GithubはGitベースのコードホスティングプラットフォームです。 GITはコードバージョンの管理に使用され、GitHubはオンラインコラボレーション環境を提供します。

Githubを学ぶのは難しくありません。 1)基本知識をマスターする:GitHubは、コードの変更と共同開発の追跡に役立つGitベースのバージョン制御システムです。 2)コア関数を理解する:バージョン制御は各提出を記録し、ローカル作業とリモート同期をサポートします。 3)使用方法を学びます:リポジトリの作成からコミットをプッシュする、ブランチの使用、リクエストをプルするまで。 4)一般的な問題を解決する:競合のマージやファイルの追加を忘れるなど。 5)最適化の練習:意味のある提出メッセージを使用し、ブランチをクリーンアップし、プロジェクトボードを使用してタスクを管理します。練習とコミュニティコミュニケーションを通じて、Githubの学習曲線は急ではありません。

履歴書では、ポジションの要件と個人的な経験に基づいて、GitまたはGithubを作成することを選択する必要があります。 1.位置にGITスキルが必要な場合は、Gitを強調表示します。 2。ポジションがコミュニティの参加を評価する場合は、Githubを表示します。 3.使用経験とプロジェクトのケースを詳細に説明し、完全な文で終了してください。

MicrosoftはGitを所有していませんが、Githubを所有しています。 1.GITは、2005年にLinus Torvazによって作成された分散バージョン制御システムです。2。Githubは、GITに基づくオンラインコードホスティングプラットフォームです。 2008年に設立され、2018年にMicrosoftに買収されました。

GITから始めることは、バージョン制御原則を深く理解するためにより適しており、GitHubから始めることは、コラボレーションとコードホスティングに焦点を当てるのに適しています。 1.GITは、コードバージョン履歴の管理に役立つ分散バージョン制御システムです。 2。Githubは、Gitに基づいたオンラインプラットフォームであり、コードホスティングとコラボレーション機能を提供します。

GITコードを更新する手順:コードをチェックしてください:gitクローンhttps://github.com/username/repo.git最新の変更を取得:gitフェッチマージの変更:gitマージオリジン/マスタープッシュ変更(オプション):gitプッシュオリジンマスター

GITは、開発者がファイルの変更を追跡し、協力してコードバージョンを管理するのに役立つオープンソース分散バージョン制御システムです。そのコア関数には、1)レコードコードの変更、2)以前のバージョンへのフォールバック、3)共同開発、4)並列開発のためのブランチの作成と管理。
