Игнорирование каталогов в репозитории Git на Windows
Как я могу игнорировать каталоги или папки в Git с помощью msysgit на Windows?
17 ответов:
создайте файл с именем
.gitignoreв каталоге вашего проекта. Игнорировать каталоги, введя имя каталога в файл (с косой чертой прилагается):dir_to_ignore/Подробнее здесь.
по умолчанию проводник windows отобразит
.gitignoreкогда на самом деле имя файла.gitignore.txtGit не будет использовать
.gitignore.txtи вы не можете переименовать файл
.gitignoreпотому что проводник думает, что это файл типа gitignore без имени.не решение командной строки:
You can rename a file to ".gitignore." and it will create ".gitignore"
кажется, что для игнорирования файлов и каталогов есть два основных способа:
.gitignore
- помещения
.gitignoreфайл в корень вашего РЕПО, кроме.gitпапку (в Windows убедитесь, что вы смотрите истинное расширение файла а потом сделать.gitignore.(с точкой в конце, чтобы сделать пустой расширение файла) )- глобальные настройки
~/.gitignore_globalи под управлениемgit config --global core.excludesfile ~/.gitignore_globalдобавить в ваш git configПримечание: файлы, отслеживаемые ранее, могут быть отменены путем запуска
git rm --cached filenameРЕПО исключить - для локальных файлов, которые не нуждаются в общем доступе, вы просто добавляете шаблон файла или каталог в файл
.git/info/exclude. Эти правила не выполняются, поэтому не видны другим пользователям подробнее здесь[обновляется] Чтобы сделать исключения в списке игнорируемых файлов, см. раздел этот вопрос.
У меня были некоторые проблемы с созданием файла в проводнике windows с a . в начале.
обходной путь состоял в том, чтобы войти в commandshell и создать новый файл с помощью "edit"
чтобы заставить GIT игнорировать определенные файлы или папки, вы должны создать .
но в проводнике Windows вы должны указать имя файла, вы просто не можете создать файл с расширением, фишка в том что создать пустой текстовый файл и перейдите в командную строку и измените имя файла
.gitignoreren "New Text Document.txt" .gitignoreтеперь откройте файл с вашим любимым текстовым редактором и добавьте имена файлов/папок, которые вы хотите игнорировать. вы также можете использовать подстановочные знаки, как это
*.txtнадеюсь, что он отвечает на ваш вопрос
если вы хотите сохранить папку, а не файлы внутри него, просто положите ".gitignore "файл в папке с" * " в качестве содержимого. Этот файл будет игнорировать все содержимое из репозитория. Но
.gitignoreбудет включен в ваше РЕПО.$ git add path/to/folder/.gitignoreесли добавить пустую папку, вы получите это сообщение (.gitignore-это скрытый файл)
The following paths are ignored by one of your .gitignore files: path/to/folder/.gitignore Use -f if you really want to add them. fatal: no files addedИтак, используйте "- f", чтобы заставить добавить:
$ git add path/to/folder/.gitignore -f
В Windows есть дополнительный улов с косыми чертами. Исключение одного каталога в .gitignore С
dir_to_exclude/
возможно будет работать, но исключая все каталоги с
/
вызывает проблемы, когда у вас есть имена файлов с пробелами (например,
my file.txt) в вашем каталоге: Git bash экранирует эти пробелы с обратной косой чертой (например,my\ file.txt) и Git для Windows не различает между/и\.чтобы исключить все каталоги лучше использовать:
**/
две последовательные звездочки обозначают содержимое каталога.
в своем
\.git\infoкаталог проектов есть файл исключения, который фактически то же самое, что и.gitignore(Я думаю). Вы можете добавить файлы и каталоги, чтобы игнорировать в этом.
У меня были некоторые проблемы с получением git для пикапа .gitignore файл на Windows. Долларов использование переменной git_dir/инфо/исключить файл всегда кажется, чтобы работать, хотя. Недостатком этого подхода, однако, является то, что файлы в каталоге $GIT_DIR не включены в регистрацию и, следовательно, не являются общими.
( стр. С. $Использование переменной git_dir обычно скрытую папку .git)
вы можете создать ".gitignore " файл с содержимым:
* !.gitignoreэто работает для меня и простейших.
чтобы игнорировать весь каталог в git, самый простой способ-включить a .gitignore файл в целевом каталоге, который просто содержит "*"
наглядный пример,
Пример Системы
/root/ .gitignore /dirA/ someFile1.txt someFile2.txt /dirB/ .gitignore someFile3.txt someFile4.txtцель
- игнорировать содержимое /dirB/
Верхний Уровень .gitignore (/root/.gitignore)
- это где ваш стандартный gitignore информация идет
Игнорируется Каталог .gitignore (/root / dirB.gitignore)
- этот файл просто читается как ' * ' и каталог игнорируется полностью, сам и все файлы!
и это так просто :)
Я предполагаю, что проблема в том, что ваше рабочее дерево-это как:
a-cache/foo a-cache/index.html b-cache/bar b-cache/foo b-cache/index.html .gitignore... с помощью
.gitignoreвы описываете. Это даст вамgit statusрезультат:$ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # .gitignore # a-cache/ # b-cache/... если the
index.htmlфайлы еще не добавлены в репозиторий. (git видит, что в каталогах кэша есть неназванные файлы, но сообщает только о каталогах.) Чтобы исправить это, убедитесь, что вы добавили и совершилindex.htmlфайлы:git add *cache/index.html git commit -m "Adding index.html files to the cache directories"... и ваш будет выглядеть так:
$ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # .gitignore nothing added to commit but untracked files present (use "git add" to track)(очевидно, вы хотите совершить
.gitignoreкроме того, я просто ленился с этим тестовым случаем.)
на всякий случай вам нужно исключить подпапки вы можете использовать
**подстановочный знак для исключения любого уровня подкаталога.**/build/output/Debug/
, когда все остальное терпит неудачу попробуйте отредактировать файл
/.git / info / exclude
и добавление нужных каталогов в конец файла, например:
# git ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~ assets/ compiled/Я добавил папки "assets" и "compiled" в список файлов и каталогов для игнорирования.
В Unix:
touch .gitignoreНа Windows:
echo > .gitignoreэти команды, выполняемые в терминале, создадут
.gitignoreфайл в текущем расположении.тогда просто добавьте информацию к этому
.gitignoreфайл (например, с помощью Notepad++), какие файлы или папки следует игнорировать. Сохранение изменений. Вот и все:)дополнительная информация:https://www.atlassian.com/git/tutorials/saving-changes/gitignore
в windows и Mac, Если вы хотите игнорировать папку с именем Flower_Data_Folder в текущем каталоге, вы можете сделать:
echo Flower_Data_Folder >>.gitignore
Если это файл с именем data.txt
данные Эхо.формат txt. >> gitignore
если его путь как "данные/пароли.txt"
Эхе "данные/пароли.формат txt. >> "gitignore.
У меня были похожие проблемы, я работаю над цепочкой инструментов windows с общим РЕПО с Linux-ребятами, они с удовольствием создают файлы с одинаковыми [за исключением случая] именами в данной папке.
эффект заключается в том, что я могу клонировать РЕПО и сразу же иметь десятки "измененных" файлов, которые, если бы я зарегистрировался, создали бы хаос.
У меня windows настроена на учет регистра и git, чтобы не игнорировать регистр, но он все равно не работает (по-видимому, в вызовах win32 api).
Если я gitignore файлы я должен помнить, чтобы не отслеживать .файла.gitignore
но я нашел хороший ответ здесь http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html
Крис