3

私はGitを初めて使用します。私はGitExtensionを使用していますが、変更を加えてローカルでコミットする場合は、まだプッシュしないでください。私の地元の歴史はどこに保存されていますか?サーバーからリポジトリのクローンを作成したディレクトリがあります。それは私のローカルコミット履歴が保存されている場所ですか、それともCドライブのどこかに保存されていますか?

4

3 に答える 3

5

Git はすべての内部データを隠しフォルダーに保存します.git。これは、プロジェクト チェックアウトのルートにあります。

于 2013-03-01T13:47:29.987 に答える
3

デフォルトでは、リポジトリが複製されると、複製によって作業ディレクトリが作成され、デフォルトのブランチが自動的にチェックアウトされます。この作業ディレクトリのルート フォルダには隠しフォルダがあります。.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>。ローカル ブランチの格納方法と非常によく似ています。プッシュすると、リモート リポジトリ内のローカル ブランチが更新されます。ブランチがフェッチされると、このフォルダー内のリモート ブランチ ファイルが更新されます。

于 2013-03-01T14:56:47.597 に答える
1

ローカルの.gitgit リポジトリは、リポジトリのディレクトリ内のファイルに保存されます。

于 2013-03-01T13:47:50.860 に答える