我是 git 新手,试图弄清楚如何通过检查网络根目录来更新每次推送的网站。
我搜索了 stackoverflow,只找到了有关如何克隆的主题,这不是我想要的。
到目前为止,我已经设置了本地和远程存储库,以及接收后挂钩:
#!/bin/sh
GIT_WORK_TREE=/path/to/website/httpdocs git checkout -f
我的问题是项目根文件夹包含在结帐中...当我将内容推送到远程存储库时,我最终得到类似的结果
/path/to/website/httpdocs/project_root/index.php
我想要实现的是拥有
/path/to/website/httpdocs/index.php
如何在签出时省略项目根文件夹?
If:
- /path/to/website/httpdocs 是一个 git 存储库
- /path/to/project_root 是一个 git 存储库(即有一个
.git
目录)
然后你可以在你的post-receive
hook:
git --git-dir=/path/to/project_root/.git --work-tree=/path/to/website/httpdocs checkout -f
但如果你想推动project_root
,它更像是一个barerepo,在这种情况下,应该调用它的根目录/project_root.git
,以及post-receive
钩子看起来像:
git --git-dir=/path/to/project_root.git --work-tree=/path/to/website/httpdocs checkout -f
任何状况之下,project_root
必须是 git 存储库的根。
The OP 砧板 https://stackoverflow.com/users/1295865/choppingblock comments https://stackoverflow.com/questions/15927943/git-post-receive-checkout-without-root-folder/15930178#comment22764885_15927943:
看来问题是由 eclipse git 插件(EGit)引起的,它会自动创建一个带有项目名称的根文件夹。
我现在通过更改路径来解决这个问题webroot
from /path/to/website/httpdocs
to /path/to/website/httpdocs/project_root
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)