私はGitを初めて使用します。私はGitExtensionを使用していますが、変更を加えてローカルでコミットする場合は、まだプッシュしないでください。私の地元の歴史はどこに保存されていますか?サーバーからリポジトリのクローンを作成したディレクトリがあります。それは私のローカルコミット履歴が保存されている場所ですか、それともCドライブのどこかに保存されていますか?
3 に答える
Git はすべての内部データを隠しフォルダーに保存します.git
。これは、プロジェクト チェックアウトのルートにあります。
デフォルトでは、リポジトリが複製されると、複製によって作業ディレクトリが作成され、デフォルトのブランチが自動的にチェックアウトされます。この作業ディレクトリのルート フォルダには隠しフォルダがあります。.git
. .git
フォルダはリポジトリのローカル コピーであり、すべてが含まれています。
より具体的に言うと、.git
フォルダー内には、この質問の対象となるフォルダーがいくつかあります。
ローカル ブランチごとに、パスにファイルがあります.git/refs/heads
。たとえば、デフォルトmaster
ブランチがある場合は、 にファイルがあります.git/refs/heads/master
。このファイルには、そのブランチの最新のコミットのコミット番号が含まれています。
コミットのデータは.git/objects
フォルダー内のファイルに保存されます。コミット ハッシュの最初の 2 桁のフォルダーとハッシュの残りの桁のファイル内。たとえば、現在作業しているリポジトリでは、master
ファイルに commit hash が含まれていますa50eed54467b98094438a22ae52995901c9a7ac9
。そのコミットのデータは.git/objects/a5/0eed54467b98094438a22ae52995901c9a7ac9
ファイルにあります。
したがって、データは親コミットとの圧縮された差分にすぎないため、これらのファイルは通常、私のリポジトリではかなり小さいです。そのファイルに含まれるデータは、そのコミットで変更されたものであり、すべてではありません。
リモート ブランチのコミットは別の場所に保存されます。リモート ブランチはフォルダ内にあります.git/refs/remotes/<remote name>/<branch name>
。ローカル ブランチの格納方法と非常によく似ています。プッシュすると、リモート リポジトリ内のローカル ブランチが更新されます。ブランチがフェッチされると、このフォルダー内のリモート ブランチ ファイルが更新されます。
ローカルの.git
git リポジトリは、リポジトリのディレクトリ内のファイルに保存されます。