如果我在各个目录中都有多个文件,文件名不同,但内容完全相同...每个重复项都会增加回购大小,还是将它们存储为“一个”文件?
例如,如果文件是100 kB,并且在存储库中重复了10次(相同的内容,不同的目录,不同的文件名)。存储库是100 kB还是1000 kB?
注意:本人可以自己对此进行半测试,并且如果我仔细阅读了链接的可能重复项中的较长答案,似乎可以最终找到答案。但是,我想要一个知道他们在说什么的人的快速,简短,明确的答案,并且希望它成为google搜索的第一个结果。不知道是不是那样,但是当我寻找这个问题的答案时,我的搜索结果中肯定没有立即明确的答案。
我是git和版本控制的新手,所以请耐心等待.
我按照http://thelucid.com/2008/12/02/git-setting-up-a-remote-repository-and-doing-an-initial-push/上的说明在服务器上创建了一个git存储库.请注意,它是一个裸存储库.
我无法理解的是存储在服务器上的文件在哪里.它们不存在于创建存储库的文件夹中.文件夹结构是这样的(ls命令):
branches config description HEAD hooks info objects refs
Run Code Online (Sandbox Code Playgroud)
我在这里的任何地方找不到文件(一堆sql文件).那他们在哪儿?
请注意,来自其他本地计算机的git clone user@server.com:/ path/to/repo工作正常.
我为我的许多项目创建了一个远程存储库,因此它是我的目的地push.与git的意识形态相反,但它作为一个中央存储库.
但是,当我转到*.git服务器上的文件夹时,有一个表单的目录结构:
- /branches
- /hooks
- applypatch-msg.sample
- commit-msg.sample
- etc
- /info
- exlude
- /objects
- 06
- 1c
- various hex numbers
- pack
- /refs
- /tags
- /heads
- master
- config
- description
- HEAD
Run Code Online (Sandbox Code Playgroud)
这里发生了什么,我敢肯定,如果我研究了git的内部工作,我将能够弄明白,但是项目文件在哪里?
更新
我用以下方式创建了回购:
git remote add origin git@site.co.za:project_name.gitgit push origin master鉴于我目前的分支是分支A.
分支A包含:
line 1 -- "i love you Foo"
Run Code Online (Sandbox Code Playgroud)
分支B包含:
line 1 -- "i love you Bar"
Run Code Online (Sandbox Code Playgroud)
如果我这样做:
git merge Branch B
Run Code Online (Sandbox Code Playgroud)
我会得到什么?
我想知道 git 是否为每个提交保留与每个提交/推送的原始计算机相关的信息。
我问过 ChatGPT,它说 git 不存储这样的东西。但我想听听第二个意见。