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

时间:2014-01-05 09:39:31

标签: 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

这里发生了什么,我敢肯定,如果我研究了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

2 个答案:

答案 0 :(得分:6)

当您推送一个裸仓库(参见“all about "bare" repos -- what, why, and how to fix a non-bare push”)时,您将不会在该仓库中看到您的文件,因为根据定义它没有工作树。

您可以添加post-receive hook (like illustrated in this post-receive hook)以便结帐(并查看)您的文件:

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

cd /path/to/bare/repo.git
GIT_WORK_TREE=/path/to/live/server git checkout -f

如果您只想查看存储在该裸仓库中的文件列表(或其内容),您甚至无需克隆所述裸仓库即可实现。 如果您可以直接访问裸仓库服务器,请参阅“Accessing files of a repository from the Git server”。

GIT_DIR=/path/to/bare.git git log --pretty=format: --name-only --diff-filter=A | sort | grep .

答案 1 :(得分:0)

Git不会以您可以查看它们的方式存储您的文件。我想你可以看到:)

您只能在该存储库的结帐中查看由git存储库管理的文件。您需要告诉我们您是如何创建远程存储库的,以便我们能够告诉您在该远程服务器上可以查看的位置,但如果该远程存储库是“无头”的话,它可能“无处”(IE没有结帐)。