Git远程仓库,没有显示文件

时间:2013-12-11 15:10:59

标签: git

我已经设置了一个远程git仓库并将我的本地仓库推送到远程仓库。这按预期工作正常,但是在远程仓库中,我没有看到与项目关联的文件,它只有branchesconfigdescriptionHEAD等等。

回购的实际项目文件在哪里?

这就是我的所作所为:

远程服务器:

cd /var/www/directory
git --bare init

本地项目(在git repo中):

git remote add remote root@IP:/var/www/directory
git push remote master

这很有效,它按照您的预期推动。就在我去/var/www/directory时,项目文件不存在,只有git相关文件。

2 个答案:

答案 0 :(得分:2)

正如@Schleis指出的那样,它是一个裸存储库。你的提交实际上就在那里。您无法看到它们,因为它们存储为git blob文件。您可以通过运行git log来验证您的提交是否存在。它应该显示与本地仓库中相同的commit sha

$ cd server

(BARE:master)$ git log
commit 19b7105fac9e44d0130d662d3d372340b0e9faea
Author: Jevgeni Zelenkov <jevgeni.zelenkov@gmail.com>
Date:   Wed Dec 11 16:21:36 2013 +0100

    init

$ cd ../local

(master)$ git log
commit 19b7105fac9e44d0130d662d3d372340b0e9faea
Author: Jevgeni Zelenkov <jevgeni.zelenkov@gmail.com>
Date:   Wed Dec 11 16:21:36 2013 +0100

    init

从版本Git 1.7.0开始,只有--bare个存储库可以接受推送&amp;拉命令。因此,如果您想将git存储库用作服务器,则必须为--bare


git-show是一个使用git内部的通用命令。 git show man page

答案 1 :(得分:0)

您创建了一个“裸”回购。它不包含文件只是有关提交的信息。

  

Git中的“裸”存储库只包含版本控制信息而没有工作文件(没有树),并且它不包含特殊的.git子目录。相反,它直接在主目录中包含.git子目录的所有内容。

http://bitflop.com/document/111

您似乎希望推动部署更改。相反,你应该做的是在你的/var/www/directory中创建一个非裸仓库,并从你的开发仓库或一个裸仓库中取出。您将在您的位置拥有非裸仓库,当您要部署更新时,您将从将更新文件的目录运行git pull。如果使用git checkout <SHA>

上次更新存在重大问题,您还可以轻松将代码移至以前的版本