Мой .gitignore
файл по какой-то причине не работает, и никакое количество Google не смогло это исправить. Вот что у меня есть:
*.apk
*.ap_
*.dex
*.class
**/bin/
**/gen/
.gradle/
build/
local.properties
**/proguard/
*.log
Он находится в каталоге master
, который является моим git-репо. Я использую Git 1.8.4.2, потому что у меня MacBook под управлением OSX 10.8.6.
/bin/
папка все еще показывает, когда я делаюgit status
. Я не менял эти файлы с тех пор, как добавил.gitignore
Ответы:
Файлы / папка в вашем контроле версий не будут просто удаляться только потому, что вы добавили их в
.gitignore
. Они уже находятся в хранилище, и вы должны удалить их. Вы можете просто сделать это с этим:(Не забудьте зафиксировать все, что вы изменили, прежде чем сделать это. )
Это удалит все файлы из хранилища и добавит их обратно (на этот раз с соблюдением правил в вашем
.gitignore
).источник
git ignore path/file
в любое время.Чтобы отследить отдельный файл, который уже был добавлен / инициализирован в вашем хранилище, то есть прекратить отслеживание файла, но не удалять его из вашей системы:
git rm --cached filename
Чтобы отследить каждый файл, который сейчас находится в вашем
.gitignore
:Сначала подтвердите все ожидающие изменения кода, а затем выполните эту команду:
Это удалит все измененные файлы из индекса (промежуточной области), а затем просто запустите:
Передайте это:
источник
Пройдя немного по кроличьей норе, пытаясь проследить ответы на этот вопрос (возможно, потому, что мне пришлось сделать это в визуальном студийном проекте), я обнаружил, что более простой путь к
Вырежьте и вставьте файлы, которые я больше не хочу отслеживать, во временную папку
Зафиксируйте «удаление» этих файлов
Зафиксируйте изменение,
.gitignore
чтобы исключить файлы, которые я временно переместилПереместите файлы обратно в папку.
Я обнаружил, что это самый простой способ сделать это (по крайней мере, в визуальной студии, или я бы предположил, что в другой среде, основанной на IDE), например, в Android Studio), без случайного попадания в ногу с довольно распространенным эффектом
git rm -rf --cached .
, после чего Визуальный студийный проект, над которым я работал, не загружался.источник
В моем случае это было пустое место в начале файла, которое было ясно видно при открытии файла в блокноте, не было очевидно в коде Visual Studio.
источник
Я использовал что-то, чтобы создать общее
.gitignore
для меня, и я столкнулся с этим. Прочитав ответ @Ozesh, я открыл в VS Code, потому что в правом нижнем углу у него есть хороший индикатор, показывающий тип окончаний строк. Это был LF, поэтому я перешел в CRLF, как и предлагалось, но без кубиков.Затем я посмотрел рядом с окончаниями строки и заметил, что она была сохранена с использованием UTF16. Поэтому я восстановил с помощью UTF8 кодирования вуаля, это сработало. Я не думал, что CRLF имеет значение, поэтому я изменил его обратно на LF, чтобы убедиться, и он все еще работал.
Конечно, это не было проблемой OP, так как он уже зафиксировал файлы, поэтому они уже были проиндексированы, но подумал, что я поделюсь, если кто-то еще наткнется на это.
TLDR ; Если вы еще не зафиксировали файлы, и .gitignore по-прежнему не соблюдается, проверьте кодировку файлов и убедитесь, что это UTF8, а если это не работает, то, возможно, попробуйте поиграть с окончаниями строк.
источник
В моем случае причиной были пробельные символы в конце строки .gitignore. Так что следите за пробелами в .gitignore!
источник
Я решил свою проблему следующим образом:
Прежде всего, я пользователь Windows, но я столкнулся с аналогичной проблемой. Итак, я публикую свое решение здесь.
Есть одна простая причина, почему иногда .gitignore не работает так, как должно. Это связано с поведением преобразования EOL.
Вот быстрое решение для этого
Правка> Преобразование EOL> Формат Windows> Сохранить
Вы можете винить в этом настройки вашего текстового редактора .
Например:
Поскольку я являюсь разработчиком Windows, я обычно использую Notepad ++ для редактирования своего текста, в отличие от пользователей Vim.
Итак, что происходит, когда я открываю свой файл .gitignore с помощью Notepad ++, он выглядит примерно так:
Если я открою тот же файл с помощью Блокнота по умолчанию, это то, что я получу
Таким образом, вы, возможно, уже догадались, посмотрев на результат. Все в .gitignore стало однострочным, и так как в начале есть ##, он действует так, как будто все прокомментировано.
Способ исправить это прост: просто откройте файл .gitignore с помощью Notepad ++, а затем выполните следующие действия.
Правка> Преобразование EOL> Формат Windows> Сохранить
В следующий раз, когда вы откроете тот же файл в блокноте по умолчанию, все должно быть правильно отформатировано. Попробуйте и посмотрите, работает ли это для вас.
источник
Кроме того, комментарии должны быть на своей линии. Их нельзя ставить после входа. Так что это не сработает:
Но это будет работать:
источник
У
git reset --hard
кого-нибудь работает? Я не говорю, что это хорошее решение, мне показалось, что оно сработало с первого раза.источник
Я сделал большую ошибку, отредактировав свой dockerignore, сработал отлично после того, как я нашел правильный файл игнорирования: p
источник
Добавление моего бита, поскольку это популярный вопрос.
Я не мог поместить каталог .history в .gitignore, потому что независимо от того, какую комбинацию я пробовал, она просто не работала. Windows продолжает генерировать новые файлы при каждом сохранении, и я не хочу их видеть вообще.
Но потом я понял, что это всего лишь моя личная среда разработки на моей машине. Такие вещи, как .history или .vscode, специфичны для меня, поэтому было бы странно, если бы каждый включал свои собственные записи .gitignore в зависимости от того, какую IDE или ОС они используют.
Так что это сработало для меня, просто добавьте ".history" в .git / info / exclude
источник