Git игнорировать, не игнорируя каталоги - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь игнорировать obj, bin, debug type файлы / каталоги из моего проекта Visual Studio. Я следовал совету здесь:

игнорирование любого каталога bin в проекте git

Это не работает.

Я вставил весь git игнорировать здесь:

https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

Это не работает.

Я пробовал все виды вещей ...

bin/
obj/
*bin/
*obj/
/bin/
/obj/
packages
MyProject/MyProject/obj/
MyProject/MyProject/bin/Debug/
MyProject/MyProject/obj/*
MyProject/MyProject/bin/Debug/*

Каталоги и их файлы все еще включены, когда я запускаю git add. Файл .gitignore добавлен и зафиксирован. Что я делаю не так ???

РЕДАКТИРОВАТЬ: файлы, которые я пытаюсь игнорировать, еще не отслеживаются. Когда я запускаю «git status», ожидающие изменения отсутствуют. "нечего совершать, рабочее дерево чистое". Затем я запускаю программу VS, которая изменяет файлы в этих папках. Затем я запускаю другой git-статус, и все файлы отображаются как «модифицированные» ...

EDIT2: имеет ли значение, если файлы уже существуют? Они не отслеживаются, но существуют в структуре папок. Когда я запускаю программу, они снова появляются как «модифицированные». Затем я должен запустить «Git Checkout». удалить их всех. Затем цикл повторяется ...

Ответы [ 3 ]

2 голосов
/ 22 апреля 2019

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

Для файла

git rm --cached <file need to remove>

Для папок

git rm -r --cached <folder>

Так что это будет проблемой в вашем случае, так как Дженкинс все еще может видеть файл в репо

1 голос
/ 22 апреля 2019

Привет, посмотрите на часть редактирования,

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

git rm -r --cached yourfolder
0 голосов
/ 22 апреля 2019

Исходя из вашего "Edit 2" выше, кажется, что вы не думаете, что они были ранее совершены, но в действительности они были.Если он отображается как «измененный», git распознает, что файл изменился по сравнению с последней версией, в которой он зарегистрирован. Если файл еще не был зафиксирован ранее, он будет отображаться как «Не отслеженный».

Когда вызапускаете git checkout для этих файлов, вы говорите git вернуть эти файлы обратно к последней версии, которая была проверена в git.

...