Как обновить сайт (git deploy), сохраняя «грязное» рабочее дерево - PullRequest
1 голос
/ 07 января 2012

У меня есть это удаленное дерево и git все еще не используется:

www
    img
        i1.jpg
        i2.jpg
        other.jpg

Но в моем местном git-репо у меня есть это:

www
    img
        i1.jpg
        i2.jpg

Заметьте, у меня нет файла "other.jpg".

Я использую git для автоматического развертывания моего сайта на локальном хосте. Я использую эту технику.

Но, когда я делаю свой первый git push web, каждый «грязный» файл на удаленном компьютере удаляется. Это означает, что файл «other.jpg», которого у меня не было в локальном рабочем репо, удален на удаленном компьютере. Но это происходит только в первый раз. Если я создаю новый 'otherfile на удаленном репо (скажем, используя ftp, например) и снова набираю git push web, это больше не произойдет. На этот раз новый «другой файл» не удален из удаленного.

Мой вопрос: есть ли способ заставить git развернуть , сохранив каждый удаленный файл, которого нет в моем локальном репо?

Я пытался найти что-то в git checkout --help, но не смог. Я также пробовал в Google такие вопросы, как «git checkout хранить рабочее дерево», но безрезультатно.

Любая помощь будет приветствоваться. Большое вам спасибо.

Примечание: я только что удалил каталог 'images' клиента, выполняющего git-развертывание, потому что каталог не был в моем репозитории loca! (надеясь, что у хостгатора есть хотя бы 7-дневная резервная копия!)

1 Ответ

0 голосов
/ 07 января 2012

Да:

git ls-files --full-name | xargs -n 1 git checkout -- 
...