我是git的新手,试图通过对网络根目录进行检查来弄清楚如何通过每次推送更新网站。 我搜索了stackoverflow,但只找到了有关如何克隆的主题,这不是我想要的。 到目前为止,我已经设置了我的本地和远程repos,以及一个post-receive hook:
#!/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
如何在结账时省略项目根文件夹?
答案 0 :(得分:0)
如果:
.git
目录)然后你可以在你的post-receive
钩子中使用:
git --git-dir=/path/to/project_root/.git --work-tree=/path/to/website/httpdocs checkout -f
但是如果你要推进project_root
,它就是裸回购,在这种情况下,它的根目录应该被称为/project_root.git
,而{{1钩子看起来像:
post-receive
无论如何,git --git-dir=/path/to/project_root.git --work-tree=/path/to/website/httpdocs checkout -f
必须是git repo的根。
似乎问题是由eclipse git插件(EGit)引起的,它自动创建一个带有项目名称的根文件夹。
我现在通过将project_root
的路径从webroot
更改为/path/to/website/httpdocs
来解决这个问题。