Игнорирование каталогов в репозитории Git на Windows
Как я могу игнорировать каталоги или папки в Git с помощью msysgit на Windows?
17 ответов:
создайте файл с именем
.gitignore
в каталоге вашего проекта. Игнорировать каталоги, введя имя каталога в файл (с косой чертой прилагается):dir_to_ignore/
Подробнее здесь.
по умолчанию проводник windows отобразит
.gitignore
когда на самом деле имя файла.gitignore.txt
Git не будет использовать
.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 вы должны указать имя файла, вы просто не можете создать файл с расширением, фишка в том что создать пустой текстовый файл и перейдите в командную строку и измените имя файла
.gitignore
ren "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
Крис