Как я могу .ignore файлы с Git GUI? - PullRequest
20 голосов
/ 23 февраля 2010

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

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

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

Что я делаю не так? где файл должен находиться?

Ответы [ 6 ]

13 голосов
/ 23 февраля 2010

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

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

6 голосов
/ 10 октября 2011

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

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

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

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

В этом списке будут перечислены все файлы, которые вы в данный момент игнорируете.

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

git rm <filename>

или

git rm --cached <filename>

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

git --rm cached .

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

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

git rm --cached *.suo *.log

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

2 голосов
/ 09 апреля 2013

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

Сначала вы должны зафиксировать .gitignore!

Также, если вы используете TortoiseGIT - GitEx Commit Tool, есть возможность редактировать игнорируемые файлы.

1 голос
/ 23 февраля 2010

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

0 голосов
/ 24 августа 2016

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

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

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

0 голосов
/ 29 ноября 2012

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

...