2
我们在git中有一个仓库,其中项目包含在名为Project的文件夹中。我们希望能够通过克隆repo来将代码发布到生产服务器,而不包括“Project”文件夹,但是包含它下面的所有内容。这可能吗?目标目录名称是/ var/www,它与项目中的任何内容无关。不幸的是,由于我们托管服务提供商的性质,我们不能只做一个符号链接(我们很快就会改变)。没有包含顶级/父级文件夹的Git克隆
我们在git中有一个仓库,其中项目包含在名为Project的文件夹中。我们希望能够通过克隆repo来将代码发布到生产服务器,而不包括“Project”文件夹,但是包含它下面的所有内容。这可能吗?目标目录名称是/ var/www,它与项目中的任何内容无关。不幸的是,由于我们托管服务提供商的性质,我们不能只做一个符号链接(我们很快就会改变)。没有包含顶级/父级文件夹的Git克隆
我的回答需要你有一个Git仓库,其内容的假设如下:
/.gitignore
/Project
/Project/index.php
/ProjectB
/ProjectB/pom.xml
如果你不需要的历史都在你的仓库的副本,还有就是git archive
命令,可以做你想做的,除了其输出将其数据tar
或zip
格式:
git archive [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>]
[-o <file> | --output=<file>] [--worktree-attributes]
[--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>
[<path>…]
像:
git archive --format=zip [email protected] master -- Project | unzip
但是,git clone命令不接受存储库路径,我认为它不是真的只想导出某个分支的树视图。您可能需要一个使项目成为独立git存储库的子模块,或者像git archive
示例一样,仅获得您想要的但没有版本控制(在生产服务器上可能存在问题)。
相反,你可以这样做:
/opt/foobar
。/var/www
中创建/opt/foobar/Project
的符号链接。或在您的apache配置(避免符号链接)而不是简单的/var/www
中引用/opt/foobar/Project
。
只是尝试'git clone Project/var/www'' – 2014-09-02 21:31:41
我不想在克隆过程中包含Project文件夹。而不是/var/www/Project/index.html我宁愿将/var/www/index.html – StackOverflowed 2014-09-02 21:34:33
cd放到你的Project文件夹中,运行'git init','git add .','git commit -a'和然后将其克隆到您的生产服务器。这会实现你想要的吗? – genisage 2014-09-02 21:51:17