Похоже, вы хотите написать какой-нибудь post-commit
хук. Но это может быть слишком тонко для вас. Просто напишите автоматические шаги в .git/hooks/post-commit
и сделайте его исполняемым. Ты сможешь
git --work-tree PATH_FOR_THIRD_PARTY checkout HEAD -- PUBLIC_FILES
чтобы обновить PUBLIC_FILES для ваших сторонних разработчиков в PATH_FOR_THIRD_PARTY, где я предполагаю, что вы публикуете данные для сторонних разработчиков.
Затем, чтобы обновить скомпилированные результаты, вы должны написать некоторый Makefile (или аналогичный), чтобы получить вывод в PATH_FOR_THIRD_PARTY из ваших скрытых файлов.
Если вы выбрали правильный макет для своего репозитория, вы можете просто использовать каталог PUBLIC_FILES, чтобы извлечь все PUBLIC_FILES в PATH_FOR_THIRD_PARTY/PUBLIC_FILES
.
Обратите внимание, что при использовании этого метода макет каталога будет одинаковым в каталоге публикации и в вашем репозитории.
Кстати: если сторонний разработчик изменит PUBLIC_FILE в своем каталоге, вы можете просто
git --work-tree PATH_FOR_THIRD_PARTY add -u
Я часто использую этот метод для публикации файлов из репозитория git. Вы можете просто
git config -g alias.public '!git --work-tree $(git config --get public.root) '
git config public.root 'PATH_FOR_THIRD_PARTY'
так что вы можете сказать
git public diff --name-only
or
git public status -s -uno
Я думаю, что этот метод известен как отдельное рабочее дерево или похож на него.
Если вы используете этот метод, вам нужно проверить файлы в вашем локальном репозитории после того, как вы сделали публичную фиксацию:
git public add -u; git public commit -m "John Doe changed something"
git checkout HEAD -- .
Последняя строка обновляет локальное рабочее дерево, чтобы привести его в соответствие с фиксацией, которую вы сделали выше.
person
ikrabbe
schedule
19.06.2015