Игнорирование каталогов в репозиториях Git в Windows
17 ответов
создайте файл с именем .gitignore
в каталоге вашего проекта. Игнорируйте каталоги, введя имя каталога в файл (с добавленной косой чертой):
dir_to_ignore/
Подробнее здесь.
по умолчанию Windows explorer будет отображать .gitignore
когда-то имя файла .gitignore.txt
Git не будет использовать .gitignore.txt
и вы не можете переименовать файл .gitignore
потому что explorer думает, что это файл типа gitignore без имени.
не решение командной строки:
You can rename a file to ".gitignore." and it will create ".gitignore"
кажется, что для игнорирования файлов и каталогов есть два основных способа:
-
.gitignore
- помещения
.gitignore
файл в корень вашего РЕПО, кроме.git
папку (в Windows убедитесь, что вы см. расширение true file а потом сделать.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 "файл в папке С" * " в качестве содержимого. Этот файл будет игнорировать все содержимое из репозитория. Но!--3--> будет включен в ваше РЕПО.
$ 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 не различает между /
и \
.
для исключения всех каталогов лучше использовать:
**/
два последовательных asteriscs показать содержимое каталога.
в своем \.git\info
каталог проектов существует файл исключения, который фактически то же самое, что и .gitignore
(Я думаю). Вы можете добавить файлы и каталоги, чтобы игнорировать в этом.
У меня были некоторые проблемы с получением git, чтобы забрать .файл gitignore в Windows. Однако файл $GIT_DIR/info/exclude всегда работает. Недостатком этого подхода, однако, является то, что файлы в каталоге $GIT_DIR не включены в регистрацию и, следовательно, не являются общими.
(стр. s. $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"
echo " данные / пароли.формат txt. >> "гитюдного.
У меня были похожие проблемы, я работаю над цепочкой инструментов windows с общим РЕПО с ребятами linux, они счастливо создают файлы с одинаковыми [за исключением случая] именами в данной папке.
эффект заключается в том, что я могу клонировать РЕПО и немедленно иметь десятки "измененных" файлов, которые, если я зарегистрируюсь, создадут хаос.
У меня windows настроена на регистр и git, чтобы не игнорировать регистр, но он все равно терпит неудачу (в вызовах win32 api, по-видимому).
Если я gitignore файлы я должен помнить, чтобы не отслеживать .файла.gitignore
но я нашел хороший ответ здесь http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html
Крис