3

我是 Git 新手。我正在使用 Git 扩展,我想问一下我是否进行了一些更改并在本地提交它但还没有推送它。我的本地历史存储在哪里???我有从服务器克隆存储库的目录。那是存储我的本地提交历史记录的位置还是存储在 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夹中的文件中;在提交哈希的前两位数字的文件夹和哈希的剩余数字的文件中。例如,在我当前正在处理的存储库中,master文件包含提交哈希a50eed54467b98094438a22ae52995901c9a7ac9。该提交的数据位于.git/objects/a5/0eed54467b98094438a22ae52995901c9a7ac9文件中。

所以这些文件在我的存储库中通常很小,因为数据只是与父提交的压缩差异。该文件中包含的数据正是该提交中更改的内容 - 不是所有内容。

远程分支所在的提交存储在不同的位置。远程分支位于文件夹中.git/refs/remotes/<remote name>/<branch name>——与本地分支的存储方式非常相似。当推送时,远程存储库中的本地分支被更新——当一个分支被获取时,这个文件夹中的远程分支文件被更新。

于 2013-03-01T14:56:47.597 回答
1

您的本地git 存储库存储在存储库.git目录中的文件中。

于 2013-03-01T13:47:50.860 回答