studio - удалить tag git




игнорирование любого каталога «bin» в проекте git (9)

Буквально ни один из ответов на самом деле не работал для меня; единственный, который работал для меня, был (в Linux):

**/bin
(yes without the / in the end)

git version 2.18.0 

У меня такая структура каталогов:

.git/
.gitignore
main/
  ...
tools/
  ...
...

Внутри основного и инструментария, а также в любом другом каталоге на любом уровне может быть каталог «bin», который я хочу игнорировать (и я хочу игнорировать все под ним тоже). Я пробовал каждый из этих шаблонов в .gitignore, но никто из них не работает:

/**/bin/**/*
/./**/bin/**/*
./**/bin/**/*
**/bin/**/*
*/bin/**/*
bin/**/*
/**/bin/* #and the others with just * at the end too

Может кто-нибудь мне помочь? Первый образец (тот, который, как мне кажется, должен работать) отлично работает, если я это сделаю:

/main/**/bin/**/*

Но я не хочу иметь запись для каждого каталога верхнего уровня, и я не хочу изменять .gitignore каждый раз, когда добавляю новый.

Это работает в Windows с использованием последней версии msysgit.

EDIT: еще одна вещь, есть файлы и каталоги, которые имеют подстроку «bin» в своих именах, я не хочу, чтобы их игнорировали :)


До версии 1.8.2 у ** не было особого значения в .gitignore . Начиная с 1.8.2 git поддерживает ** для обозначения нулей или более подкаталогов (см. Примечания к выпуску ).

Способ игнорировать все каталоги, называемые bin где-нибудь ниже текущего уровня в дереве каталогов, - это файл .gitignore с шаблоном:

bin/

На странице man есть пример игнорирования каталога с именем foo с использованием аналогичного шаблона.

Редактирование. Если у вас уже есть папки с папками в вашем индексе git, которые вы больше не хотите отслеживать, вам необходимо явно удалить их. Git не прекратит отслеживать пути, которые уже отслеживаются только потому, что теперь они соответствуют новому шаблону .gitignore . Выполните удаление папки ( rm ) только из индекса ( --cached ) recursivelly ( -r ). Пример командной строки для папки root bin:

git rm -r --cached bin

Если вы ищете отличный глобальный файл .gitignore для любого решения Visual Studio (.NET), я рекомендую вам использовать его: https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

AFAIK имеет самый полный .gitignore для проектов .NET.


Как уведомление;

Если вы думаете о .gitignore не работает в некотором роде (поэтому добавлена ​​папка foo/* но git status все еще показывает, что содержимое папки изменяется или что-то вроде этого), тогда вы можете использовать эту команду;

git checkout -- foo/*


Я не видел, чтобы это упоминалось здесь, но это, похоже, чувствительно к регистру. Как только я изменил на / Bin, файлы были проигнорированы, как ожидалось.


для 2.13.3 и далее, запись только bin в файл .gitignore должна игнорировать bin и все его подкаталоги и файлы

бункер


.gitignore вашей мечты:

bin/

на верхнем уровне.


[Bb]in случае решит проблему, но ... Вот более обширный список вещей, которые вы должны игнорировать (примерный список GitExtension):

#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.bak
*.cache
*.ilk
*.log
[Bb]in
[Dd]ebug*/
*.sbr
obj/
[Rr]elease*/
_ReSharper*/

[Bb]in/

соответствует верхнему и нижнему регистру





gitignore