Git игнорирует отслеживаемые файлы БЕЗ ИХ УДАЛЕНИЯ

У меня возникли некоторые проблемы с пониманием основных концепций git :/

Я провожу тестирование на локальном компьютере с Windows, прежде чем попробовать некоторые вещи на моем сайте, контролируемом git.

У меня есть:

gittesting/repo1:
    file.txt
    ignoreme:
        ignore.txt

и

gittesting/repo2
    file.txt
    ignoreme:
        ignore.txt

Repo2 является копией repo1, и ignoreme уже отслеживается. Файл ignore.txt изменяется в репозитории2, но я хочу прекратить его отслеживать и чтобы git полностью игнорировал его. Проблема в том, что если я создам файл .gitignore и добавлю ignoreme, это слишком поздно, потому что он уже отслеживается, поэтому мне придется сделать git rm --cached ignore, но затем он помечается как удаленный, и если я вытащу фиксацию в repo1, каталог будет удален, а не оставлен в покое.

Подводя итог:

  1. Игнорирование.txt имеет разное содержимое между двумя репозиториями.
  2. Я хочу, чтобы игнорирование.txt содержимое осталось таким, какое оно есть, и было полностью проигнорировано git

Я посмотрел в Интернете, задал в IRC и посмотрел на очень связанные вопросы, но не могу найти способ сделать это. Я знаю, что пример кажется тривиальным, но это именно то, что мне нужно сделать на моем сайте, где вместо этого каталог - Форум / кэш.


edit:

Это немного хак, и я бы предпочел лучший ответ, но в итоге я сделал:

cd repo2
echo "ignoreme" > .gitignore
echo "ignoreme/*" > .gitignore
git rm --cache -r ignoreme
git commit -m "Should ignore now"
cd ../repo1
mv ignoreme ignoreme2
git pull ../repo2
mv ignoreme2 ignoreme
17
задан mowwwalker 18 May 2012 в 06:34
поделиться