我开始使用Git和我的项目VCS。 我已创建在/码回购使用哪里是项目文件在远程回购在Git?
git init --bare
远程回购和从推本地回购变化到那里。那么我想将项目文件从那里移动到/ var/www/project以便http:// ....可访问。但我没有在/ codes-repo上看到任何项目文件(index.php,css /,....)来复制它们,那里只有git文件和文件夹。 他们在哪里?
我开始使用Git和我的项目VCS。 我已创建在/码回购使用哪里是项目文件在远程回购在Git?
git init --bare
远程回购和从推本地回购变化到那里。那么我想将项目文件从那里移动到/ var/www/project以便http:// ....可访问。但我没有在/ codes-repo上看到任何项目文件(index.php,css /,....)来复制它们,那里只有git文件和文件夹。 他们在哪里?
裸仓库没有结帐。也就是说,裸存储库仅保存提交信息 - 它不会在存储库文件夹中保留磁盘上实际文件的副本。
裸仓库只能推或拉。要获得这些文件,最好的方法是克隆裸仓库(作为非纯粹的克隆),然后在克隆中运行结账。
另一种选择,如果你感觉勇敢,是纯仓库转换成非纯仓库(How do I convert a bare git repository into a normal one (in-place)?)
纯仓库没有所谓的工作目录,所以不会有任何文件系统对象。
Git仍然跟踪内容,提交,标签等,但将它们存储在某处。当你在非存储库中使用git checkout时,git会更新索引(存储库中的文件)以反映作为参数给出的tree-ish对象。
将文件从一个裸仓库的副本,你可以使用git存档
GIT_DIR=~/BARE_REPO git archive --format tar master | tar xvf -
git的存档命令将转换目标承诺(marter,例如),以tar格式,发送到标准输出。你可以将它管到一个tar命令来立即提取。
另一种方法是检出存储库。
git checkout ~/BARE_REPO myproject
但是,把这个整个目录放到你的web服务器上是不合适的。否则,您的整个.git目录将被访问。任何人都可以获取源代码并完成提交历史记录(当然,您可以通过.htaccess或nginx设置阻止这些访问)。
我想我得到了我的答案,谢谢。 –
还有用于从数据库中提取对象的git命令。例如。 'git show'。 – bames53