2014-01-20 3 views
3

я могу удалить файл из репозитория мерзавца сКак удалить файл из репозитория Git, без удаления его в клонированных репозиториев

git rm --cached <file> 

Но когда я тяну эти изменения в клонированный каталоге, то этот файл удаляться там.

Можно ли избежать этого, не сохраняя этот файл во всех клонов и восстановить его после потянув?

+0

* мерзавец гт * * * совершить, * нажимной * – MarshalSHI

ответ

2

Я думаю, что вы ищете assume-unchanged флаг.

В принципе, попробуйте запустить следующую команду

git update-index --assume-unchanged <file> 

Это остановит отслеживать любые локальные изменения в file.

Чтобы отменить эффект выше команды, используйте git update-index --no-assume-unchanged

+0

Спасибо! Это именно то, что я ищу. – steppicrew

+0

Если вы потянете за этим, перезапишет ли файл? И можете ли вы удалить файл без его удаления из других репозиций, клонированных из того же источника? – Mnebuerquo

-1

Идея клонирования репозитория заключается в том, что он должен быть одним и тем же, поэтому притяжение всегда сделает оба репозитория одинаковыми. Если вы хотите иметь два различных набора файлов, которые вы можете создать новую ветку с удаленным файлом ушел с использованием

git checkout -b <branch_name> 

, а затем совершить удаленный файл там.

Если вы действительно не хотите, чтобы это сделать, вы всегда можете вытащить изменения, а затем легко получить файл обратно с помощью

git checkout HEAD^ -- <file> 

Что проверяет файл из коммита позапрошлом.

+0

Спасибо! Проблема в том, что у меня был включен файл конфигурации, который должен быть удален из репозитория, поскольку он может быть зависимым от хоста (и его никогда не следует добавлять). Я не знаю точно, где этот репозиторий используется, и мне нравится избегать удаления этого файла (и прерывания текущей конфигурации), когда вы вытаскиваете его в другом месте. – steppicrew

+0

Я бы сохранил пример конфигурационного файла в репозитории git и добавил фактический файл конфигурации (который может содержать пароли) в .gitignore – gdelfino

+0

Да, если файл конфигурации зависит от хоста, то каждый хост должен будет установить его из файла примера , Git следует использовать только для файлов, которые вы хотите контролировать версиями. – MungoRae

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