git push force, phpFog и случайный файл, которого нет в моем репо - PullRequest
8 голосов
/ 06 февраля 2012

Я использую phpFog и внедряю через git push -f <repo>, чтобы перезаписать существующее содержимое на сервере. Некоторые из моих развертываний были из совершенно разных репозиториев, так как я экспериментировал с некоторыми вещами.

Я обнаружил, что файл предыдущего push-файла, которого больше нет в текущем репозитории, задерживается на сервере. Я могу удалить этот файл (с помощью сценария php), но каждый новый запрос на сервер будет заново создавать этот файл - даже если только что созданный репозиторий не содержит его.

Извлеченный урок состоит в том, чтобы не нажимать w / force, я предположил - но почему этот случайный файл воссоздается при загрузке репо, которые его не содержат?!

Опять вот что я вижу:

  • git push -f repo_1 (содержит random.txt)
  • random.txt существует
  • Я удаляю все файлы, random.txt теперь исчез
  • git push -f repo_2 (не содержит random.txt)
  • random.txt снова существует (почему?!)

РЕДАКТИРОВАТЬ: я предполагаю, что принудительные изменения в репо оставляет старые файлы по-прежнему отслеживаются, даже если новый репо никогда не отслеживал их. Я изменил свой метод развертывания, чтобы теперь клонировать то, что находится в phpFog, удалить все git и добавить мои новые файлы перед отправкой. https://github.com/swt83/phpfog-deploy

1 Ответ

0 голосов
/ 10 февраля 2012

Некоторые из моих развертываний были из совершенно разных репозиториев

Если у вас есть рабочая копия (которая не выполняется), не могли бы вы просто удалить исходный каталог git и CLONE /Вытащить свою рабочую копию?

При фиксации git commit -am "Message here" всегда находил удаленные файлы и тому подобное.Это команда, которую вы используете для фиксации?

Вы также можете добиться успеха, попытавшись удалить текстовый файл из списка git:

git rm --cached random.txt

Github показываеткак сохранить этот файл от отслеживания.

...