我已经设置了一个远程git仓库并将我的本地仓库推送到远程仓库。这按预期工作正常,但是在远程仓库中,我没有看到与项目关联的文件,它只有branches
,config
,description
,HEAD
等等。
回购的实际项目文件在哪里?
这就是我的所作所为:
远程服务器:
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相关文件。
答案 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>