项目文件存储在git存储库`.git`文件夹中的哪个位置?

sur*_*190 2 git github

我为我的许多项目创建了一个远程存储库,因此它是我的目的地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的内部工作,我将能够弄明白,但是项目文件在哪里?

更新

我用以下方式创建了回购:

  1. 有一个现有的本地git存储库
  2. 向本地添加了远程 git remote add origin git@site.co.za:project_name.git
  3. 在服务器上,创建了一个名为'git init --bare project_name.git`的基本存储库
  4. 从本地推送到远程 git push origin master

Von*_*onC 6

当你推动一个简单的回购(参见" 所有关于"裸"回购 - 什么,为什么,以及如何修复非裸推) ",你将不会在该回购中看到你的文件,因为根据定义它没有工作树.

您可以添加一个post-receive钩子 (如此post-receive挂钩中所示)以便检出(并查看)您的文件:

/path/to/bare/repo.git/hooks/post-receive:

cd /path/to/bare/repo.git
GIT_WORK_TREE=/path/to/live/server git checkout -f
Run Code Online (Sandbox Code Playgroud)

如果您只想查看存储在该裸仓库中的文件列表(或其内容),您甚至无需克隆所述裸仓库即可.如果您可以直接访问裸仓库服务器,
请参阅" 从Git服务器访问存储库的文件 ".

GIT_DIR=/path/to/bare.git git log --pretty=format: --name-only --diff-filter=A | sort | grep .
Run Code Online (Sandbox Code Playgroud)