Вопрос

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

Это содержание файла.

# Ignored files
*.suo 
*.user 
bin 
obj 
*.pdb 
*.cache 
*_svn 
*.svn 
*.suo 
*.user 
*.build-res 
TestResults 
_ReSharper*

Что я делаю не так? Где файл должен быть расположен?

Это было полезно?

Решение

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

Если вы удалите их (git rm или же git rm --cached), а затем добавьте их в качестве частного файла, затем их игнорируют.

Другие советы

Ваш файл выглядит хорошо. Просто убедитесь, что у вас нет каких -либо пробелов в начале каждой строки, мне потребовалось 4 часа, чтобы узнать, почему мой .gitignore не работал правильно; Причиной была, конечно, проблема с вырезом, в которой у меня была вертикальная линия пространств в начале файла.

Вы должны быть осторожны с git commit -a Прежде чем убедиться, что ваш файл .gitignore действительно очищает все, что вам не нужно. Либо отметьте каждый файл (или используйте подстановочные знаки) с помощью git add *.cpp *.h или - как я предпочитаю - развивайте свой .gitignore по мере продвижения, и всегда проверяете с git status Прежде чем совершать.

Если вы хотите проверить, что ваш .gitignore действительно работает, пытаться

git ls-files --others -i --exclude-standard

Это должно перечислить все файлы, которые вы в настоящее время игнорируете.

Чтобы очистить файлы, которые вы уже добавили (вероятно, используя git add ., ошибка, которую мы все делаем в начале =]), вы можете сделать как @Vonc сказал: либо беги

git rm <filename>

или же

git rm --cached <filename>

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

git --rm cached .

Но не забудьте не бежать git add . Пока вы не убедились, что статус GIT перечисляет только файлы, которые вы действительно хотите в репозитории.

Еще одна очень полезная вещь с GIT - это то, что ему не нужны пути к файлам при использовании подстановочных знаков. Если вы перечислите свои игнорируемые файлы и видите, что хотите удалить все *.suo а также *.log файлы, просто запустите

git rm --cached *.suo *.log

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

Я попробовал несколько способов заставить это работать, и это было наконец довольно просто:

Вы должны сначала совершить .gitignore!

Кроме того, если вы используете инструмент Tortoisegit - Gitex Commit, есть возможность редактировать игнорируемые файлы.

Вы находите это правильно. .gitignore должен быть в одной и той же папке, где расположена. Файл внутри также выглядит правильно. Однако у меня нет линии комментариев вверху ..

Когда я смотрю на это, я думаю, что вы забыли совершить свой файл игнорирования.

Ни одно из растворов -кэшированных решений не работало для меня. Файл должен быть закодирован как ASCII/ANSI. Я также изменил концовки линии, но это только это не исправило. Я не могу найти URL, в котором были эти инструкции (извините, оригинальный плакат!), Но это сработало для меня:

  1. Установите Notepad ++, если у вас его еще нет. TextPad также должен работать, но я использую Notepad ++.
  2. Откройте свой .gitignore с блокнотом ++.
  3. Нажмите на просмотр | Показать символ | Покажите всех персонажей. Вы, вероятно, увидите CR LF в конце каждой линии.
  4. Сделайте поиск и замените (Ctrl+H), убедившись, что расширенная проверка (нижний ручной угол). Поиск r n и замените на n. Вы увидите все изменения CR LF только на LF.
  5. Теперь нажмите на кодирование | Кодировать в ANSI.
  6. Сохраните файл и выйдите.

В командной строке в Windows или в командной строке GIT, в зависимости от того, что вам нравится, когда вы делаете статус GIT, она не должна показывать файлы в .gitignore.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top