Вы хотите, чтобы папка кеша была полностью исключена из хранилища, или только ее содержимое?
Гарет
1
Я предполагаю, что OP имеет несколько каталогов кеша, содержимое которых следует игнорировать, но хочет убедиться, что эти каталоги созданы для любого, кто клонирует репозиторий.
Марк Лонгэйр
@Gareth: поскольку пустые папки не отслеживаются с помощью git, если содержимое игнорируется, папка тоже будет, не так ли?
Eckes
3
Я только упомянул это, потому что некоторые люди используют скрытые файлы (обычно .gitkeep), чтобы указать каталог, который следует сохранить
Гарет
2
это /в конце концов , что делает его знать его каталог он должен игнорировать?
Чарли Паркер
Ответы:
1595
Создайте файл с именем .gitignoreв каталоге вашего проекта. Проигнорируйте каталоги, введя имя каталога в файл (с добавленной косой чертой):
В командной строке Windows вы можете использовать «edit .gitignore» или «notepad .gitignore» для создания правильного файла.
Джои Грин
44
Или вы также можете использовать «touch .gitignore» из командной строки Windows git bash, и это создаст файл с правильно названным именем, который затем можно будет редактировать с помощью блокнота или подобного ...
SGB
39
Или просто создайте файл с именем .gitignore. с помощью проводника и отредактируйте его с помощью блокнота (конечная точка будет удалена). Таким образом, вам не нужно использовать командную строку.
П. Гэлбрейт,
6
Или вы можете vim .gitignore из терминала. :)
MollyCat
34
Или, что на удивление не упоминалось, хотя это и самый быстрый способ, просто введите «echo folder_to_ignore >> .gitignore» в консоли.
Кузнец
205
По умолчанию проводник Windows будет отображаться, .gitignoreкогда на самом деле имя файла .gitignore.txt.
Git не будет использовать .gitignore.txt
И вы не можете переименовать файл .gitignore, потому что Windows Explorer считает, что это файл типа gitignore без имени.
Решение без командной строки:
Вы можете переименовать файл в «.gitignore». , и это создаст ".gitignore"
Это работает? Я всегда просто говорил людям открыть блокнот и в диалоговом окне «Сохранить как» введите имя файла, заключенное в двойные кавычки, например, ".gitignore"и оно сохранит его без автоматического добавления расширения.
Arrowmaster
9
Ухоженная. В том числе завершающий период работает. Explorer удаляет последний период, в результате чего создается файл с именем «.gitignore». Я думаю, что метод цитат является более чистым и менее вероятным, чтобы создавать сюрпризы.
Трийнко
4
Или в диалоговом окне «Сохранить как» измените тип файла на «Все файлы ( . )» - тогда Windows не добавит расширение.
OsakaWebbie
5
или в git bash просто введите «touch .gitignore» в вашей папке
Rayjax
3
".gitignore."- Это отличный трюк! У меня всегда были проблемы с .htaccess...
Obmerk Kronen
105
Кажется, что для игнорирования файлов и каталогов существует два основных способа:
.gitignore
Поместите .gitignoreфайл в корень вашего хранилища, кроме .gitпапки (в Windows убедитесь, что вы видите истинное расширение файла, а затем сделайте .gitignore.(с точкой в конце, чтобы создать пустое расширение файла))
Создание глобальной конфигурации ~/.gitignore_globalи запуск, git config --global core.excludesfile ~/.gitignore_globalчтобы добавить это в вашу конфигурацию Git
Примечание: файлы, отслеженные ранее, можно не отслеживать, запустив git rm --cached filename
Исключение из репозитория - для локальных файлов, которые не требуют совместного использования, вы просто добавляете в файл шаблон файла или каталог .git/info/exclude. Эти правила не зафиксированы, поэтому другие пользователи их не видят . Более подробная информация здесь .
Чтобы сделать исключения в списке игнорируемых файлов, посмотрите этот вопрос .
хорошая работа, указывая на git rm --cached <filename>. Абсолютно критично для репо, которые существовали ДО того, как вы создали.gitignore
MaurerPower
2
git rm --cached <filename> устранил проблему, с которой я столкнулся .gitignore :)
JeremyFelix
1
Да, git rm - кэшированное имя файла абсолютно необходимо. Это сводило меня с ума, так как git все еще создавал файлы, которые я четко указывал как игнорируемые (создавал gitignore после первоначального коммита). Большое спасибо!
Потайто
1
Решил мою проблему. Git отслеживал папку продавца в моем репозитории laravel, хотя я добавил папку продавца в gitignore. Большое спасибо.
Джаянт
44
У меня были некоторые проблемы , создавая файл в проводнике Windows с микросхемой .в самом начале.
Обходной путь должен был войти в командную оболочку и создать новый файл, используя «edit».
или просто добавьте дополнительный .в конце, чтобы исследователь перестал думать, .gitignoreчто это расширение. Затем при входе эта конечная точка без расширения просто съедается, и вы .gitignore.gitignore..gitignore
остаетесь
43
Чтобы указать Git игнорировать определенные файлы или папки, вы должны создать .gitignoreфайл.
Но в Windows Explorer вы должны указать имя файла. Вы просто не можете создать файл только с расширением. Хитрость в том, что создайте пустой текстовый файл и перейдите в командную строку и измените имя файла на .gitignore:
ren "New Text Document.txt" .gitignore
Теперь откройте файл в вашем любимом текстовом редакторе и добавьте имена файлов / папок, которые вы хотите игнорировать. Вы можете также использовать групповые символы , как это: *.txt.
Или просто вызовите файл, .gitignore.когда расширения файлов не скрыты в проводнике Windows
Vairis
22
Если вы хотите сохранить папку, а не файлы внутри нее, просто поместите файл «.gitignore» в папку с «*» в качестве содержимого. Этот файл заставит Git игнорировать весь контент из хранилища. Но .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» для принудительного добавления:
В Windows есть дополнительный улов с косой чертой. Исключая один каталог в .gitignore с
dir_to_exclude /
возможно будет работать, но исключая все каталоги с
/
вызывает проблемы, когда my file.txtв вашем каталоге есть имена файлов с пробелами (например ): Git Bash экранирует эти пробелы обратной косой чертой (как my\ file.txt), а Git для Windows не различает /и \.
Чтобы исключить все каталоги, лучше использовать:
** /
Две последовательные звездочки обозначают содержимое каталога.
Кроме того, в вашем \.git\infoкаталоге проектов есть исключающий файл, который фактически совпадает с .gitignore(я думаю). Вы можете добавить файлы и каталоги, чтобы игнорировать в этом.
Если ничего не помогает, попробуйте отредактировать файл
/.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" в список файлов и каталогов, чтобы их игнорировать.
Это лучший ответ, он также приносит дополнительные преимущества при развертывании и обслуживании проекта.
Нитин ...
Кто такой "простой" ?
Питер Мортенсен
9
В Unix:
touch .gitignore
В Windows:
echo > .gitignore
Эти команды, выполняемые в терминале, создадут .gitignoreфайл в текущем местоположении.
Затем просто добавьте в этот .gitignoreфайл информацию (например, с помощью Notepad ++), какие файлы или папки следует игнорировать. Сохраните ваши изменения. Это оно :)
... с .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/
... если эти index.htmlфайлы еще не были добавлены в хранилище. (Git видит, что в каталогах кеша есть незарегистрированные файлы, но он только сообщает о каталогах.) Чтобы это исправить, убедитесь, что вы добавили и зафиксировали index.htmlфайлы:
git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"
... и ваша git statusволя будет выглядеть так:
$ 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. Я просто ленился с этим тестовым примером.)
Вы, вероятно, действительно хотите зафиксировать .gitignore, тем более что вы, вероятно, захотите отслеживать изменения в нем, как и ваша команда (если вы работаете с ней). См. Stackoverflow.com/a/767213/123033
Дейв Эверитт
2
@Dave Everitt: Именно поэтому я сказал: «Очевидно, вы тоже хотите совершить .gitignore».
Марк Лонгэйр
6
В Windows и Mac, если вы хотите игнорировать папку с именем Flower_Data_Folder в текущем каталоге, вы можете сделать:
У меня были похожие проблемы. Я работаю над цепочкой инструментов Windows с общим репозиторием с парнями из Linux, и они с радостью создают файлы с одинаковыми (за исключением случая) именами в заданной папке.
В результате я могу клонировать репозиторий и сразу получить десятки «измененных» файлов, которые, если я вернусь, создадут хаос.
У меня Windows установлена с учетом регистра и Git не игнорирует регистр, но все равно не работает (очевидно, в вызовах Win32 API).
Если я gitignore файлы, то я должен помнить, чтобы не отслеживать файл .gitignore.
Похоже, что ссылка не работает (сначала она перенаправляет на версию «https»): «Сбой безопасного соединения. Произошла ошибка при подключении к archive.robwilkerson.org. PR_END_OF_FILE_ERROR»
Питер Мортенсен,
0
Просто создайте .gitignoreфайл в папке вашего проекта. Затем добавьте имя папки в нем, например:
.gitkeep
), чтобы указать каталог, который следует сохранить/
в конце концов , что делает его знать его каталог он должен игнорировать?Ответы:
Создайте файл с именем
.gitignore
в каталоге вашего проекта. Проигнорируйте каталоги, введя имя каталога в файл (с добавленной косой чертой):Более подробная информация здесь .
источник
По умолчанию проводник Windows будет отображаться,
.gitignore
когда на самом деле имя файла.gitignore.txt
.Git не будет использовать
.gitignore.txt
И вы не можете переименовать файл
.gitignore
, потому что Windows Explorer считает, что это файл типа gitignore без имени.Решение без командной строки:
источник
".gitignore"
и оно сохранит его без автоматического добавления расширения.".gitignore."
- Это отличный трюк! У меня всегда были проблемы с.htaccess
...Кажется, что для игнорирования файлов и каталогов существует два основных способа:
.gitignore
.gitignore
файл в корень вашего хранилища, кроме.git
папки (в Windows убедитесь, что вы видите истинное расширение файла, а затем сделайте.gitignore.
(с точкой в конце, чтобы создать пустое расширение файла))~/.gitignore_global
и запуск,git config --global core.excludesfile ~/.gitignore_global
чтобы добавить это в вашу конфигурацию GitПримечание: файлы, отслеженные ранее, можно не отслеживать, запустив
git rm --cached filename
Исключение из репозитория - для локальных файлов, которые не требуют совместного использования, вы просто добавляете в файл шаблон файла или каталог
.git/info/exclude
. Эти правила не зафиксированы, поэтому другие пользователи их не видят . Более подробная информация здесь .Чтобы сделать исключения в списке игнорируемых файлов, посмотрите этот вопрос .
источник
git rm --cached <filename>
. Абсолютно критично для репо, которые существовали ДО того, как вы создали.gitignore
У меня были некоторые проблемы , создавая файл в проводнике Windows с микросхемой
.
в самом начале.Обходной путь должен был войти в командную оболочку и создать новый файл, используя «edit».
источник
.
в конце, чтобы исследователь перестал думать,.gitignore
что это расширение. Затем при входе эта конечная точка без расширения просто съедается, и вы.gitignore
.gitignore.
.gitignore
Чтобы указать Git игнорировать определенные файлы или папки, вы должны создать
.gitignore
файл.Но в Windows Explorer вы должны указать имя файла. Вы просто не можете создать файл только с расширением. Хитрость в том, что создайте пустой текстовый файл и перейдите в командную строку и измените имя файла на
.gitignore
:Теперь откройте файл в вашем любимом текстовом редакторе и добавьте имена файлов / папок, которые вы хотите игнорировать. Вы можете также использовать групповые символы , как это:
*.txt
.источник
type nul > .gitignore
создать пустой файл.gitignore.
когда расширения файлов не скрыты в проводнике WindowsЕсли вы хотите сохранить папку, а не файлы внутри нее, просто поместите файл «.gitignore» в папку с «*» в качестве содержимого. Этот файл заставит Git игнорировать весь контент из хранилища. Но
.gitignore
будет включен в ваш репозиторий.Если вы добавите пустую папку, вы получите это сообщение (.gitignore - скрытый файл)
Итак, используйте «-f» для принудительного добавления:
источник
В Windows есть дополнительный улов с косой чертой. Исключая один каталог в .gitignore с
возможно будет работать, но исключая все каталоги с
вызывает проблемы, когда
my file.txt
в вашем каталоге есть имена файлов с пробелами (например ): Git Bash экранирует эти пробелы обратной косой чертой (какmy\ file.txt
), а Git для Windows не различает/
и\
.Чтобы исключить все каталоги, лучше использовать:
Две последовательные звездочки обозначают содержимое каталога.
источник
Кроме того, в вашем
\.git\info
каталоге проектов есть исключающий файл, который фактически совпадает с.gitignore
(я думаю). Вы можете добавить файлы и каталоги, чтобы игнорировать в этом.источник
На всякий случай, если вам нужно исключить подпапки, вы можете использовать
**
подстановочный знак, чтобы исключить любой уровень подкаталога.источник
Чтобы игнорировать весь каталог в Git, самый простой способ - включить файл .gitignore в целевой каталог, который просто содержит «*».
Наглядный пример,
Пример системы
Цель
Верхний уровень .gitignore (/root/.gitignore)
Игнорируемый каталог .gitignore (/root/dirB.gitignore)
И это так просто :)
источник
Если ничего не помогает, попробуйте отредактировать файл
и добавляем нужные каталоги в конец файла, например так:
Я добавил папки "assets" и "compiled" в список файлов и каталогов, чтобы их игнорировать.
источник
Вы можете создать файл .gitignore с содержимым:
Меня устраивает.
источник
В Unix:
В Windows:
Эти команды, выполняемые в терминале, создадут
.gitignore
файл в текущем местоположении.Затем просто добавьте в этот
.gitignore
файл информацию (например, с помощью Notepad ++), какие файлы или папки следует игнорировать. Сохраните ваши изменения. Это оно :)Дополнительная информация: .gitignore
источник
У меня были некоторые проблемы с получением Git для загрузки
.gitignore
файла в Windows.$GIT_DIR/info/exclude
Файл всегда , кажется, работает , хотя.Недостатком этого подхода, однако, является то, что файлы в
$GIT_DIR
каталоге не включены в регистрацию и, следовательно, не являются общими.источник
Я предполагаю, что проблема в том, что ваше рабочее дерево выглядит так:
... с
.gitignore
вами описать. Это даст вамgit status
вывод, как:... если эти
index.html
файлы еще не были добавлены в хранилище. (Git видит, что в каталогах кеша есть незарегистрированные файлы, но он только сообщает о каталогах.) Чтобы это исправить, убедитесь, что вы добавили и зафиксировалиindex.html
файлы:... и ваша
git status
воля будет выглядеть так:(Очевидно, вы тоже хотите совершить коммит
.gitignore
. Я просто ленился с этим тестовым примером.)источник
В Windows и Mac, если вы хотите игнорировать папку с именем Flower_Data_Folder в текущем каталоге, вы можете сделать:
Если это файл с именем
data.txt
:Если это путь типа «Data / passwords.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
источник
Просто создайте
.gitignore
файл в папке вашего проекта. Затем добавьте имя папки в нем, например:источник