根据https://www.git-tower.com/learn/git/ebook/en/command-line/basics/basic-workflow#start
在Git中,存储库只是一个简单的隐藏文件夹,名为“
.git
”,位于 项目的根目录。
但是Git for beginners: The definitive practical guide说
git仓库只是一个包含特殊
.git
的目录 目录
“存储库”是指隐藏的.git
文件夹还是包含.git
目录的目录?
我知道当您git commit
时,您正在将更改记录到本地.git
文件夹中。这是否意味着当我们推送到类似GitHub上托管的远程存储库时,我们只是推送.git
文件夹的内容而已?
答案 0 :(得分:3)
“存储库”是指隐藏的.git文件夹还是包含.git目录的目录?
从严格意义上讲,存储库仅是.git/
子目录。包含.git/
和所有项目文件的目录称为"working tree",从严格意义上讲,.git/
子目录不属于工作树。
但是人是人,我们使用宽松的术语,所以我们经常将整个工作树+ .git/
称为“存储库”或“项目”或其他。
我知道,当您进行git commit时,您会将更改记录到本地.git文件夹中。这是否意味着当我们推送到类似GitHub上托管的远程存储库时,我们只是推送.git文件夹的内容而已?
简短的回答:是的。
更长的答案很复杂。是的,git push
仅推送来自Git对象数据库的对象,并推送引用(分支和标签)。但是.git/
中还有更多的东西永远不会被推送或拉出:配置文件,挂钩以及与当前存储库相关的许多其他文件和目录。