2016-06-20 3 views
2

У меня есть проект и поделился корневой папкой через git..gitignore, git add, и файлы таинственно исчезают

Мои соотечественники и я используем разные версии Gradle (и назвали проект разными вещами), поэтому было бы полезно, чтобы некоторые файлы в .idea-папке (определенной папке) были в файле .gitignore. Я не понимал этого до сих пор, когда мой друг потянул его, изменил многое из-за использования другой версии и теперь оттолкнул его.

Я добавил в файл .gitignore:

/.idea/ 

Однако, мерзавец, кажется, по-прежнему посылать изменения в этой папке на репо Github.

Я проверил несколько вещей, в том числе this, this и еще несколько вопросов о переполнении стека.

Я побежал git rm --cached .idea/, и это успешно удерживало изменения от толкания. Однако, если я проверю другую ветку, а затем вернусь к ней, она не включит соответствующие файлы в каталог .idea.

Спасибо,

Путать кодировщик

+1

Не был бы '/ .idea /' игнорировать корневой уровень '.idea' папку, а не один в вашем каталоге проекта? – pjmorse

+0

Это, безусловно, игнорирует папку .idea, так как содержимое папки исчезает. – FWhitaker

ответ

0

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

git update-index --force-remove yourFileName 

Это будет означать файл для удаления, не удаляя его. --force-remove, кажется, работает только на отдельные файлы, поэтому для того, чтобы удалить всю папку, попробуйте следующее:

find .idea | xargs git update-index --force-remove 
+0

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

+0

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

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