До сегодняшнего дня я использовал git следующим образом:
Я обычно делал большие изменения на ПК и отправлял на сервер.После этого мне пришлось «git reset HEAD» и «git checkout».на сервере.Иногда я делаю небольшие изменения на сервере и возвращаю их обратно на ПК.Это все работало нормально до сегодняшнего дня, когда, нажимая, git жаловался
remote: error: refusing to update checked out branch: refs/heads/master
etc.
Почему после 6-12 месяцев нормальной работы этот сбой должен произойти сейчас?
Найдя http://toroid.org/ams/git-website-howto благодаря вопросу StackOverflow, я скопировал / path / www в /path/www.git и сделал это «голым» репо.Корень документа остается в / path / www.Я добавил скрипт .git / hooks / post-receive, содержащий «GIT_WORK_TREE = / path / www checkout -f».
После изменения конфигурации на ПК, чтобы он указывал на репозиторий www.git, теперь я могунажмите как прежде, и изменения будут загружены и обновлены в корне документа.У меня есть несколько вопросов по этому поводу:
, что подразумевает, что у рабочего дерева нет метаданных .git.Это действительно так?Я попытался удалить его каталог .git, но «git status» больше не работал.Установка GIT_DIR в /path/www.git не помогла, так как git сказал, что репо (голое в /path/www.git) на самом деле не было репо.
Если яобновите index.html и добавьте somefile.html на ПК и отправьте эти изменения; эти файлы обновляются / добавляются в корневой каталог сервера.Но если я использую «git status» в корне документа, это говорит о том, что index.html был изменен, а somefile.html является неотслеживаемым файлом.Я наивно ожидал, что "checkout -f" обновит рабочее дерево до того, что я вытолкнул с ПК.Могу ли я достичь этого?