我是 Git 新手。我正在使用 Git 扩展,我想问一下我是否进行了一些更改并在本地提交它但还没有推送它。我的本地历史存储在哪里???我有从服务器克隆存储库的目录。那是存储我的本地提交历史记录的位置还是存储在 C 驱动器中的任何位置?
3 回答
Git 将其所有内部数据存储在隐藏文件夹.git
中。它位于项目结帐的根目录中。
默认情况下,克隆存储库时,克隆会创建一个工作目录,其中自动签出默认分支。在这个工作目录的根文件夹中有一个隐藏文件夹;.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>
——与本地分支的存储方式非常相似。当推送时,远程存储库中的本地分支被更新——当一个分支被获取时,这个文件夹中的远程分支文件被更新。
您的本地git 存储库存储在存储库.git
目录中的文件中。