GIT post-receive checkout без корневой папки
Я новичок в git, пытаюсь выяснить, как обновлять веб-сайт при каждом нажатии, выполняя проверку в корневом веб-каталоге. Я искал stackru и нашел только темы о том, как клонировать, а это не то, что я хочу. На данный момент я настроил свои локальные и удаленные репозитории и хук после получения:
#!/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 ответ
Если:
- / path / to / website / httpdocs - это git-репо
- /path/to/project_root - это git-репозиторий (т.е.
.git
каталог)
Тогда вы можете использовать в своем post-receive
крюк:
git --git-dir=/path/to/project_root/.git --work-tree=/path/to/website/httpdocs checkout -f
Но если вы настаиваете на project_root
, это скорее пустое хранилище, в этом случае его корневой каталог должен называться /project_root.git
и post-receive
крючок будет выглядеть так:
git --git-dir=/path/to/project_root.git --work-tree=/path/to/website/httpdocs checkout -f
В любом случае, project_root
должен быть корнем git репо.
Комментарии к choppingblock блоку:
похоже, что проблема вызвана подключаемым модулем eclipse git (EGit), который автоматически создает корневую папку с именем проекта.
Теперь я обошел его, изменив путь кwebroot
от/path/to/website/httpdocs
в/path/to/website/httpdocs/project_root
,