2013-03-01 151 views
3

我是Git的新手。我使用的是Git擴展,我想問一下,如果我做了一些更改並在本地提交,但不要推送它。我的本地歷史存儲在哪裏? 我有我從服務器克隆存儲庫的目錄。這是我本地提交歷史存儲的位置,還是存儲在C驅動器中的任何位置?Git本地更改歷史記錄在硬盤上的位置

回答

5

Git將其所有內部數據存儲在隱藏文件夾.git中。它是您項目結賬的根源。

+0

除非你提交回原來的git倉庫,否則你的本地副本是他們所在的唯一地方。 – vonbrand 2013-03-02 04:22:34

1

本地 git存儲庫存儲在你的倉庫的.git目錄中的文件中。

3

默認情況下,當克隆存儲庫時,克隆將創建一個工作目錄,其中默認分支已簽出自動餘量。在這個工作目錄的根文件夾中是一個隱藏文件夾; .git.git文件夾是存儲庫的本地副本幷包含所有內容。

更具體地說,在.git文件夾內有幾個關於這個問題的感興趣的文件夾。

對於每個本地分支,文件路徑爲.git/refs/heads。例如,如果您有默認的master分支,則會有一個文件在.git/refs/heads/master。該文件包含該分支上最新提交的提交編號。

提交的數據存儲在.git/objects文件夾的文件中;在提交哈希的前兩位數字的文件夾內以及哈希的其餘數字的文件內。例如,在我目前正在使用master文件的存儲庫中,包含提交散列號a50eed54467b98094438a22ae52995901c9a7ac9。該提交的數據位於.git/objects/a5/0eed54467b98094438a22ae52995901c9a7ac9文件中。

因此,這些文件通常在我的存儲庫中很小,因爲數據只是父級提交的壓縮差異。包含在該文件中的數據正是該提交中所改變的 - 而不是所有內容。

遠程分支所在的提交被存儲在不同的位置。遠程分支位於文件夾.git/refs/remotes/<remote name>/<branch name> - 非常類似於本地分行的存儲方式。推送時,遠程倉庫中的本地分支被更新 - 當獲取分支時,該文件夾中的遠程分支文件被更新。