2010-06-03 2 views
1

Я внедряю GIT для веб-разработки, и я хочу иметь репозиторий рабочей копии, который каждый нажимает, чтобы автоматически отражать последнюю фиксацию в нем (так как он онлайн для всех в команде, чтобы увидеть как сайт для тестирования). Прямо сейчас, вы должны запустить «git reset --hard HEAD» в репозитории после того, как кто-то подталкивает его, чтобы быть в курсе последних событий.Обновление работы с целевым репо при внесении изменений

ответ

1

Для одного, вы, как правило, don't push to a non-bare repository, именно потому, что вы можете слишком легко справиться с некогерентным состоянием между рабочим каталогом и индексом.

warning: updating the currently checked out branch; this may cause confusion, 
as the index and working tree do not reflect changes that are now in HEAD. 

Но так как в вашем случае, вы хотите, чтобы воспользоваться существующей «живой» репо, вы могли бы настроить post-receive hook.

#!/bin/sh 
export GIT_DIR= 
cd .. 
echo "Resetting working tree..." 
git reset --hard 
echo "Finished resetting working tree." 

, как это было предложено Frerich Raabe в "Git: Post-update hook that runs a script that needs access to all files in the repository"

Смежные вопросы