GIT收到后没有根文件夹的结帐

时间:2013-04-10 13:57:53

标签: git

我是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

如何在结账时省略项目根文件夹?

1 个答案:

答案 0 :(得分:0)

如果:

  • / path / to / website / httpdocs是一个git repo
  • / path / to / project_root是一个git repo(即有一个.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的根。


OP choppingblock comments

  

似乎问题是由eclipse git插件(EGit)引起的,它自动创建一个带有项目名称的根文件夹。
  我现在通过将project_root的路径从webroot更改为/path/to/website/httpdocs来解决这个问题。