Есть ли команда игнорирования для git, как для svn?
125
Я новый пользователь gitи начинаю новый проект. У меня есть куча точечных файлов, которые я хотел бы игнорировать. Есть ли команда игнорирования, gitкак есть svn?
Отредактируйте .gitignoreфайл, расположенный в соответствующем месте рабочей копии. Затем вы должны добавить это .gitignoreи зафиксировать. Каждый, кто клонирует это репо, проигнорирует эти файлы.
Обратите внимание, что только имена файлов, начинающиеся с, /будут относиться к каталогу, в котором .gitignoreнаходится. Все остальное будет соответствовать файлам в любом подкаталоге.
Вы также можете редактировать, .git/info/excludeигнорируя определенные файлы только в этой одной рабочей копии. .git/info/excludeФайл не будет совершен, и, таким образом , применяется только локально в этой одной рабочей копии.
Вы также можете создать глобальный файл с шаблонами, которые нужно игнорировать git config --global core.excludesfile. Это будет локально применяться ко всем рабочим копиям git в одной учетной записи пользователя.
Беги git help gitignoreи читай текст для подробностей.
Отсутствие простой команды игнорирования кажется таким упущением со стороны команды git.
jcollum
4
@jcollum На первый взгляд, это так, но простота псевдонима команды для добавления новых И сложность ее создания и проработка всех крайних случаев / ошибок / потенциальных проблем редактирования текстового файла также имеет смысл оставить это на усмотрение пользователь. Я чувствую противоречие, потому что я одновременно согласен и не согласен с вами.
Значит, если я использую git ignore "index.html", он проигнорирует этот файл?
JohnAndrews
Команда -t все еще применима? Когда я запускаю его, он просто добавляет -t и любой шаблон, который я пытаюсь добавить в файл игнорирования git
Bynho
50
В Linux / Unix вы можете добавлять файлы в файл .gitignore с помощью echoкоманды. Например, если вы хотите игнорировать все .svnпапки, запустите это из корня проекта:
В Git Bash в Windows мне нужно было добавить предшествующий /и завершающий '\' (для создания новой строки), например echo /nbproject/project.properties\ >> .gitignoreи echo /nbproject/project.xml\ >> .gitignore.
Ryan
15
У вас есть два способа игнорировать файлы:
.gitignoreв любой папке игнорирует файлы, указанные в файле для этой папки. Возможно использование подстановочных знаков.
.git/info/excludeсодержит глобальный шаблон игнорирования, аналогичный global-ignoresфайлу конфигурации в subversions.
Обратите внимание, что шаблоны в .gitignoreфайле, которые не содержат '/', сопоставляются рекурсивно (то есть также во всех подкаталогах каталога, в котором .gitignoreнаходится файл), в отличие от svn:ignoreсвойств каталога в Subversion.
Якуб Наребски
6
Надеюсь, еще не поздно.
Если вы работаете в Windows, вы можете просто сделать следующее, чтобы создать файл .gitignore
Не используйте это, если у вас уже есть файл .gitignore, он перезапишет его! Чтобы добавить файл для игнорирования, используйте это: echo ignore.ext >> .gitignore
TomEberhard
Вы правы, желательно использовать только в том случае, если файла .gitignore не существует. Лучше использовать "блокнот .gitignore", если у вас есть файл .gitignore, он откроет его, а если нет, он создаст его, а затем вы сможете добавить все файлы из блокнота. 1 файл / папка в строке
Nesar
3
Создайте файл с именем .gitignore в корне вашего репозитория. В этом файле вы указываете относительный путь к каждому файлу, который хотите игнорировать, в одной строке. Вы можете использовать *подстановочный знак.
Используя уже предоставленные ответы, вы можете git ignoreвыполнить собственную команду, используя псевдоним . Либо добавьте это в свой файл ~ / .gitconfig:
ignore = !sh -c 'echo $1 >> .gitignore' -
Или запустите эту команду из оболочки (* nix) по вашему выбору:
или для существующего файла (командная строка типа sh):
echo /$(ls -1 file) >> .gitignore # I use tab completion to select the file to be ignored
git rm -r --cached file # if already checked in, deletes it on next commit
Полезно определить для вашего проекта полный файл .gitignore . Наградой является безопасное использование удобных команд --allили -aфлагов вроде addи commit.
Также рассмотрите возможность определения глобального файла ~ / .gitignore для часто игнорируемых шаблонов, таких как *~
, который охватывает временные файлы, созданные Emacs.
А затем вы можете просто ввести giвсе элементы платформы / среды, для которых вам нужны критерии gitignore.
Пример!
Допустим, вы работаете над проектом узла, который включает grunt, и используете webstorm в Linux, тогда вы можете ввести: gi linux,webstorm,node,grunt > .gitignore(чтобы создать новый файл)
или gi linux,webstorm,node,grunt >> .gitignore(чтобы добавить / добавить новые правила в существующий файл )
Ответы:
Специальной
git ignore
команды нет.Отредактируйте
.gitignore
файл, расположенный в соответствующем месте рабочей копии. Затем вы должны добавить это.gitignore
и зафиксировать. Каждый, кто клонирует это репо, проигнорирует эти файлы.Обратите внимание, что только имена файлов, начинающиеся с,
/
будут относиться к каталогу, в котором.gitignore
находится. Все остальное будет соответствовать файлам в любом подкаталоге.Вы также можете редактировать,
.git/info/exclude
игнорируя определенные файлы только в этой одной рабочей копии..git/info/exclude
Файл не будет совершен, и, таким образом , применяется только локально в этой одной рабочей копии.Вы также можете создать глобальный файл с шаблонами, которые нужно игнорировать
git config --global core.excludesfile
. Это будет локально применяться ко всем рабочим копиям git в одной учетной записи пользователя.Беги
git help gitignore
и читай текст для подробностей.источник
Очень полезная команда git ignore поставляется с замечательными tj / git-extras .
Вот несколько примеров использования:
Список всех игнорируемых в настоящее время шаблонов
Добавить узор
Добавьте один из шаблонов с gitignore.io
git-extras предоставляет еще много полезных команд. Определенно стоит попробовать.
источник
В Linux / Unix вы можете добавлять файлы в файл .gitignore с помощью
echo
команды. Например, если вы хотите игнорировать все.svn
папки, запустите это из корня проекта:источник
/
и завершающий '\' (для создания новой строки), напримерecho /nbproject/project.properties\ >> .gitignore
иecho /nbproject/project.xml\ >> .gitignore
.У вас есть два способа игнорировать файлы:
.gitignore
в любой папке игнорирует файлы, указанные в файле для этой папки. Возможно использование подстановочных знаков..git/info/exclude
содержит глобальный шаблон игнорирования, аналогичныйglobal-ignores
файлу конфигурации в subversions.источник
.gitignore
файле, которые не содержат '/', сопоставляются рекурсивно (то есть также во всех подкаталогах каталога, в котором.gitignore
находится файл), в отличие отsvn:ignore
свойств каталога в Subversion.Надеюсь, еще не поздно.
Если вы работаете в Windows, вы можете просто сделать следующее, чтобы создать файл .gitignore
Чтобы отредактировать .gitignore, вы можете запустить
источник
Создайте файл с именем .gitignore в корне вашего репозитория. В этом файле вы указываете относительный путь к каждому файлу, который хотите игнорировать, в одной строке. Вы можете использовать
*
подстановочный знак.источник
Используя уже предоставленные ответы, вы можете
git ignore
выполнить собственную команду, используя псевдоним . Либо добавьте это в свой файл ~ / .gitconfig:Или запустите эту команду из оболочки (* nix) по вашему выбору:
Вы также можете создать
git exclude
команду, заменивignore
наexclude
и.gitignore
на.git/info/exclude
в приведенном выше.(Если вы еще не понимаете разницу между этими двумя файлами, прочитав ответы здесь, см. Этот вопрос .)
источник
для имен, отсутствующих в рабочей копии или репо:
или для существующего файла (командная строка типа sh):
источник
Полезно определить для вашего проекта полный файл .gitignore . Наградой является безопасное использование удобных команд
--all
или-a
флагов вродеadd
иcommit
.Также рассмотрите возможность определения глобального файла ~ / .gitignore для часто игнорируемых шаблонов, таких как
*~
, который охватывает временные файлы, созданные Emacs.источник
Для этого вам нужно установить git-extras. Вы можете установить его в Ubuntu с помощью apt-get,
Затем вы можете использовать команду git ignore.
источник
brew install git-extras
.Вы также можете использовать gitignore.io Джо Блау
Либо через веб-интерфейс https://www.gitignore.io/
Или, установив инструмент CLI, это очень просто и быстро, просто введите следующее на своем терминале:
Linux:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bashrc && source ~/.bashrc
OSX:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bash_profile && source ~/.bash_profile
А затем вы можете просто ввести
gi
все элементы платформы / среды, для которых вам нужны критерии gitignore.Пример!
Допустим, вы работаете над проектом узла, который включает grunt, и используете webstorm в Linux, тогда вы можете ввести:
gi linux,webstorm,node,grunt > .gitignore
(чтобы создать новый файл)или
gi linux,webstorm,node,grunt >> .gitignore
(чтобы добавить / добавить новые правила в существующий файл )бац, тебе хорошо идти
источник