Будет ли git checkout удалять файлы, которых там быть не должно? - PullRequest
11 голосов
/ 10 февраля 2012

Если я настрою пост-получение хука в git, как

#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org git checkout -f

Это удалит файлы, которые находятся на сервере, но не в моем локальном репозитории git?

Если да, есть ли способ остановить это?

1 Ответ

12 голосов
/ 11 февраля 2012

Зависит от того, будут ли файлы удалены, в зависимости от того, существовали ли они в хранилище до извлечения.

Если файлы, находящиеся на сервере (/var/www/www.example.org), отслеживаются в репо на сервере, но новая проверка включает изменения, которые их удалили, то они будут удалены на стороне сервера .

Если файлы, находящиеся на сервере, НЕ отслеживаются в репо на сервере, они останутся. Поскольку Git не знает о них, Git не удалит их.

Чтобы узнать, отслеживаются ли они на сервере, вы можете сделать git status <file in question>. Если это говорит:

# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       <file in question>

Тогда вы знаете, что касса не будет удалена.

Просто обратите внимание, если позже в новой проверке будет существовать позже, чем при следующей проверке, которая удалит ее, удалится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...