Разное

Gitignore git: Git — gitignore Documentation

Содержание

О файле .gitignore / Тяпк

.gitignore нужен для скрытия файлов и папок от системы контроля версий Git. Обычно скрывают конфигурационные файлы (особенно с паролями), временные файли и папки. gitignore использует glob формат для выборки файлов.

Основной синтаксис:

  • Каждая строка — отдельный шаблон
  • Пустые строки игнорируются
  • Строки начинающиеся с # являются комментариями
  • Символ слеша «/» в начале строки указывает на текущую папку (где лежит .gitignore)
  • Звёздочка(*) заменяет любое количество символов
  • Две звёздочки(**) используются для указания всех подпапок.
  • Восклицательный знак(!) в начале строки инвертирует шаблон (используется для исключений)
  • Для экранирования спецсимволов используется обратный слэш «\». Для игнорирования всей директории, правило должно оканчиваться на слэш(/), в противном случае правило считается именем файла.

В репозитарии gitignore от github собраны примеры gitignore файлов для всех типовых проектов.

Пример .gitignore файла

# Игнорировать файл foo.txt.
foo.txt
# Игнорировать html файлы
*.html
# Но конкретно foo.html не игнорировать
!foo.html
# Игнорировать rar файлы в корне проекта
# Допустим файл /temp/main.rar не будет проигнорирован т.к. он не в корне
/*.rar
# Игнорировать css файлы из папки bar не включая подпапки
# Допустим файл /bar/temp/main.css не будет проигнорирован т.к. он в подпапке temp
/bar/*.css
# Игнорировать js файлы из папки bar и подпапок, если таковые будут
/bar/**.*.js

Как исключит папку из отслеживания, но добавить подпапку?

Задача 1

Убрать папку node_modules, но оставить в ней 2 подпапки jquery и semantic

├── js
│   ├── app.js
│   └── system.js
├── scss
│   ├── system.scss
│   └── theme.scss
└── vendor
    ├── node_modules       <-- Убрать
    │   ├── load-json-file
    │   ├── lodash
    │   ├── jquery         <-- Оставить
    │   ├── make-error
    │   ├── semantic       <-- Оставить
    │   └── yargs
    └── semantic. json

Решение:

/vendor/node_modules/*
!/vendor/node_modules/jquery/
!/vendor/node_modules/semantic/

Задача 2

Убрать папку node_modules, но оставить в её подпапке jquery подпапку dist

├── js
│   ├── app.js
│   └── system.js
├── scss
│   ├── system.scss
│   └── theme.scss
└── vendor
    ├── node_modules       <-- Убрать
    │   ├── load-json-file
    │   ├── lodash
    │   ├── jquery
    │   │   └──dist        <-- Оставить
    │   ├── make-error
    │   ├── semantic
    │   └── yargs
    └── semantic.json

Решение:

/vendor/node_modules/*
/vendor/node_modules/jquery/*
!/vendor/node_modules/jquery/
!/vendor/node_modules/jquery/dist/

Как игнорировать файлы, которые уже отслеживаются?

Если вы добавили файл или папку в .gitignore, после того как они попали в репозиторий, то их необходимо удалить из репозитория командой:

git rm --cached <file>

Например убрать папку storage/framework/cache/. Обратите внимание: вначале отсутствует слеш.

git rm -r --cached "storage/framework/cache/"

По мотивам:

.gitignore игнорируется Git — CodeRoad

Мой файл .gitignore , похоже, игнорируется Git — может ли файл .gitignore быть поврежден? Какой формат файла, locale или культура ожидает Git?

Мой .gitignore :

# This is a comment
debug.log
nbproject/

Выход из git status :

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       debug.log
#       nbproject/
nothing added to commit but untracked files present (use "git add" to track)

Я бы хотел, чтобы debug.log и nbproject/ не появлялись в списке неотслеживаемых файлов.

Где я должен начать искать, чтобы исправить это?

git

gitignore

Поделиться

Источник


Matt Parkins    

12 июля 2012 в 12:09

25 ответов


  • Где файл игнорируется . gitignore

    Я делаю git add db/schema.rb The following paths are ignored by one of your .gitignore files: db/schema.rb Use -f if you really want to add them. fatal: no files added Где я могу найти этот файл, который игнорируется, см.: cat .gitignore .project nbproject .redcar cat ~/.gitignore .idea…

  • . gitignore игнорируется Visual Studio?

    У меня есть проект git, над которым я работаю, используя Visual Studio 2013 и Git. Я заметил, что многие, если не все, файлы, перечисленные в моем файле .gitignore , все еще перечислены как ожидающие изменений в окне Team Explorer. Однако при выполнении git status с использованием bash я не вижу…



3179

Даже если вы не отслеживали файлы до сих пор, Git, кажется, может «know» о них даже после того, как вы добавите их в .gitignore .

WARNING: сначала зафиксируйте текущие изменения, иначе вы их потеряете.

Затем выполните следующие команды из верхней папки вашего репозитория Git:

git rm -r --cached .
git add .
git commit -m "fixed untracked files"

Поделиться


Alin Huruba    

12 июля 2012 в 12:20



336

Если вам кажется, что Git не замечает изменений, внесенных вами в файл .gitignore , вы можете проверить следующие моменты:

  • Возможно, существует глобальный файл .gitignore , который может помешать вашему локальному файлу
  • Когда вы добавляете что-то в файл .gitignore, попробуйте сделать это:

    git add [uncommitted changes you want to keep] && git commit
    git rm -r --cached .
    git add .
    git commit -m "fixed untracked files"
    
  • Если вы удалили что-то из файла .gitignore, и вышеперечисленные шаги, возможно,не работают, если вы обнаружили, что вышеперечисленные шаги не работают, попробуйте сделать это :

    git add -f [files you want to track again]
    git commit -m "Refresh removing files from . gitignore file."
    
    // For example, if you want the .java type file to be tracked again,
    // The command should be:
    //     git add -f *.java
    

Поделиться


ifeegoo    

03 сентября 2015 в 13:54



203

Исправлено. OK, я создал файл .gitignore в блокноте на Windows, и он не работал. Когда я просмотрел файл .gitignore на Linux, он выглядел как организованная тарабарщина — возможно, блокнот записал Unicode, а не ASCII или что-то еще 8-битное.

Поэтому я переписал файл на свой ящик Linux, и когда я вытащил его обратно в Windows, он отлично работает! Ура!

Поделиться


Matt Parkins    

12 июля 2012 в 12:30


  • Django settings.cpython-36.pyc не игнорируется gitignore

    Файл в моем приложении settings.cpython-36.pyc не игнорируется, даже если я добавил его в файл . gitignore . Мой код пример : *.log *.pot *.pyc .idea LearnDjango/__pycache__/ venv/ /LearnDjango/settings.py LearnDjango/__pycache__/settings.cpython-36.pyc Gitkraken view, вы можете видеть, что он все…

  • Не удалось найти причину, по которой папка игнорируется в Git

    У меня есть РЕПО, где у меня есть папка под названием web/folder , которая игнорируется Git. В какой-то момент я хотел, чтобы эта папка была проигнорирована, и добавил ее с помощью файла .gitignore. Но теперь, даже если я удалю файл .gitignore, он продолжает исключать web/folder . Я попробовал git…



115

Без добавления еще одного коммита в ваш проект одной строки будет достаточно, чтобы заставить .gitignore работать так, как он должен:

git rm -r --cached debug.log nbproject

Это удалит их из хранилища, но все равно сохранит физически. Проще говоря, он удаляет любую историю изменений, связанных с ними, а также не будет отслеживать их изменение в любом будущем коммите. Вы можете найти лучшее объяснение здесь .

Поделиться


H Aßdøµ    

19 марта 2014 в 23:40



47

Другой причиной этой проблемы являются пробелы или табуляции перед оператором:

Пример:

# Be aware of the following:
 notWorkingIgnore.*
workingIgnore.*

И, как указано в комментарии ниже, пространство trailing также может быть проблемой:

# Be aware of the following:
notWorkingIgnore.* #<-Space
workingIgnore.*#<-Nospace

Поделиться


Rawa    

23 декабря 2013 в 01:48



37

Я заметил, что кодировка .gitignore имела эффект-если файл был Unicode, он игнорировался, если это был ASCII, то нет.

Процесс:

  1. Проверьте статус: PS> git status
  2. Создайте функцию для получения-FileEncoding
  3. Кодировка теста . gitignore ‘s: PS> Get-FileEncoding .gitignore
  4. Измените кодировку на ASCII: PS> Set-Content .gitignore -Encoding Ascii -Value (Get-Content .gitignore)
  5. Подтвердите: PS> git status

Поделиться


craig    

13 августа 2015 в 21:14



32

Как и в случае с другими решениями, сначала зафиксируйте их и имейте в виду, что вы потеряете все не зафиксированные изменения.

У меня были лучшие результаты с этим:

git rm -r --cached .
git reset HEAD --hard
git status

Обратите внимание, что теперь в статусе не должно быть никаких измененных файлов.

Поделиться


Steven Stark    

14 ноября 2016 в 23:13



21

В моем случае это происходит потому, что файлы уже существуют в хранилище, и я пытаюсь игнорировать их.

Вот что я сделал, чтобы исправить эту проблему:

  • Скопируйте файлы во временную папку
  • Удалите их из папки моего проекта.
  • Зафиксируйте изменения, которые удаляют эти файлы из репозитория
  • Повторно добавил Эти файлы в папку моего проекта

К тому времени любые изменения, которые я внес в эти файлы, были проигнорированы.

Я думаю, что вы не можете игнорировать файлы, которые уже существуют в репозитории.

Поделиться


Edesa    

21 августа 2017 в 08:27



19

Все ответы здесь на самом деле являются обходными путями. Вам нужно создать файл .gitignore перед запуском git init . В противном случае git никогда не узнает, что вам нужно игнорировать эти файлы, потому что они уже были отслежены.

echo .idea/ >> .gitignore
git init

Если вы развиваетесь ежедневно, я советую вам добавить ваши привычные игнорируемые файлы в ваш файл ~/. gitignore_global . Таким образом, git уже будет знать, какие файлы вы (то есть «ваш пользователь», поскольку это файл в вашем домашнем каталоге) обычно игнорируете.

Поделиться


CESCO    

25 ноября 2015 в 21:21



16

Также проверьте каталог , куда вы поместили .gitignore .

Он должен быть в корне вашего проекта :

./myproject/.gitignore

Не в

./myproject/.git/.gitignore

Поделиться


Artem Zaytsev    

14 октября 2014 в 06:32



9

Специально для пользователей Windows: если у вас есть неотслеживаемые файлы и очистка/удаление кэшированных файлов не работает. Попробуйте открыть файл PowerShell и преобразовать его в кодировку UTF-8:

$Myfile = Get-Content . \.gitignore`
$Myfile | Out-File -Encoding "UTF8" .gitignore

Вам нужно сделать это только один раз, чтобы закодировать файл .gitignore для этого каталога, и поскольку файл затем кодируется правильно, всякий раз, когда вы редактируете файл в будущем, он должен работать. Я полагаю, что это связано с тем, что GitHub не собирается читать кодировку, отличную от UTF-8, для файла .gitignore. Насколько мне известно, этот вопрос еще не решен для Windows. Это не слишком большое дело, просто больно отлаживать, когда он не работает.

Поделиться


maximusg    

11 ноября 2017 в 01:20



8

Есть еще одна проблема с .gitignore , которая может возникнуть, особенно для пользователя Windows. Git не нравится, когда вы называете .gitignore (например, unity.gitignore ).

Вы всегда будете называть его .gitignore, или на Windows, . gitignore. , как Windows думает, что вы пытаетесь переименовать его без имени файла.

Поделиться


Goldblaze    

16 августа 2015 в 15:49



7

Я только что столкнулся с этой проблемой. Содержимое моего файла .gitignore продолжало появляться в списке неотслеживаемых файлов.

Я использовал это для создания файла ignore:

echo "node_modules" > .gitignore

Оказывается, двойные котировки были причиной проблемы для меня. Я удалил файл ignore, а затем снова использовал команду без кавычек, и она работала так, как ожидалось. Мне не нужно было возиться с кодировкой файла. Я нахожусь на машине Windows 10, использующей Cmder .

Пример:

echo node_modules > .gitignore

Поделиться


bprdev    

25 августа 2017 в 06:36



6

У меня была такая проблема с файлом . gitignore, содержащим эту строку:

lib/ext/

Я только что понял, что на самом деле этот каталог является символической ссылкой на папку где-то еще:

ls -la lib/ext/
lrwxr-xr-x 1 roipoussiere users 47 Feb  6 14:16 lib/ext -> /home/roipoussiere/real/path/to/the/lib

В строке lib/ext/ Git на самом деле ищет папку , но символическая ссылка-это файл , поэтому моя папка lib не игнорируется.

Я исправил это, заменив lib/ext/ на lib/ext в моем файле .gitignore.

Поделиться


roipoussiere    

03 мая 2017 в 14:21



6

Для меня ни один из предыдущих ответов не сработал. Мне пришлось скопировать текст .gitignore в файл exclude.txt , найденный по адресу

<Your-project-folder>\. git\info

После этого обновите свои изменения, и все неотслеживаемые файлы исчезнут. Совершите, как обычно.

Поделиться


raga    

20 февраля 2017 в 00:47



6

Моей проблемой был (как и предполагал OP) поврежденный файл .gitignore. Я не верил, что это так, и игнорировал эту возможность, пока все остальное не провалилось. Повреждение не обнаружилось в vi , но в начале файла было два байта, из-за которых файл .gitignore был проигнорирован. Для меня они появились только тогда , когда я набрал cat .gitignore, что показало:

��# Built application files
*.apk
*.ap_

# ...

Я понятия не имею, как они там оказались, но воссоздание файла устранило проблему. Анализ поврежденного файла hex показал следующее:

user@dev ~/project/myproject $ xxd -b .gitignore
00000000: 11111111 11111110 00100011 00000000 00100000 00000000  . .#. .
00000006: 01000010 00000000 01110101 00000000 01101001 00000000  B.u.i.

Поделиться


pcdev    

08 января 2018 в 02:15



5

У меня была та же проблема. Я считаю, что проблема была в расхождении CR против CR+LF. Я спрятал вещи в своем .gitignore, используя CMD (на Windows 7) и следующую команду:

Плохой:

echo "file_to_be_ignored.py" >> .gitignore<br>
echo "*~" >> .gitignore

И т.д.

Проблема заключалась в том, что эта команда не помещает правильный маркер end-of-line для Git, чтобы распознать новые строки (либо CR, либо CR+LF, когда Git ожидает другого). Я решил эту проблему, вручную заменив каждую новую строку в Vim (Vim на помощь!), и это сработало отлично.

Попробуйте отредактировать свой .gitignore в Notepad++ или Vim (в идеале). Даже если файл выглядит правильно отформатированным, попробуйте заменить новые строки. Это звучит странно, я знаю, но это сработало для меня.

Поделиться


fictivelogic    

21 февраля 2015 в 06:32



4

Итак, в моем случае принятое решение не сработало, а то, что сработало, описано здесь:

Visual Studio 2013 игнорирует ваш файл .gitignore?

Короче говоря:

  • Закрыть Visual Studio.
  • Перейдите в папку .git
  • Удалить ms-persist.xml
  • Перезагрузите Visual Studio

Поделиться


Bartosz    

29 марта 2016 в 10:41



4

Уже есть несколько замечательных ответов, но моя ситуация была утомительной. Я отредактировал исходный код установленного программного обеспечения PLM (product lifecycle management) на Win10, а затем решил, что «I probably should have made this a git repo. »

Таким образом, опция кэширования не будет работать непосредственно для меня. Публикация для других, кто, возможно, добавил систему управления версиями AFTER выполнение кучи начальной работы AND .gitignore не работает BUT, вы можете бояться потерять кучу работы, так что git rm --cached не для вас.

!IMPORTANT: это действительно потому, что я слишком поздно добавил git к «project», который слишком велик и, кажется, игнорирует мой .gitignore. У меня было NO коммитов, когда-либо. Я могу git уйти с этим 🙂

Во-первых, я просто сделал:

rm -rf .git
rm -rf .gitignore

Затем я должен был иметь представление о своих изменениях. Опять же, это установочный продукт, в котором я внес изменения. Слишком поздно для первого коммита чистой главной ветви. Итак, мне нужен был список того, что я изменил с тех пор, как установил программу, добавив > changed.log к любому из следующих вариантов:

PowerShell

# Get files modified since date. 
Get-ChildItem -Path path\to\installed\software\ -Recurse -File | Where-Object -FilterScript {($_.LastWriteTime -gt '2020-02-25')} | Select-Object FullName

Bash

# Get files modified in the last 10 days...
find ./ -type f -mtime -10

Теперь у меня есть список того, что я изменил за последние десять дней (давайте не будем вдаваться в лучшие практики здесь, кроме как сказать: Да, я сделал это с собой).

Чтобы начать все сначала, прямо сейчас:

git init .
# Create and edit .gitignore

Мне пришлось сравнить свой измененный список с моим растущим .gitignore, запущенным git status по мере его улучшения, но мои правки в .gitignore читаются по мере того, как я иду.

Наконец-то у меня есть список желаемых изменений! В моем случае это шаблонная работа-некоторые темы работают вместе с конфигурациями sever xml, специфичными для запуска системы dev против этого программного обеспечения, которое я хочу поместить в РЕПО для других разработчиков, чтобы захватить и внести свой вклад. .. Это будет наша главная ветвь, так что совершайте, толкайте и, наконец, готовьтесь к новой работе!

Поделиться


Neil Guy Lindberg    

10 марта 2020 в 14:27



3

Следует также обратить внимание на одну вещь: сохраняете ли вы свой файл .gitignore с правильными окончаниями строк?

Windows:

Если вы используете его на Windows, сохраняете ли вы его с окончаниями строк Windows? Не все программы будут делать это по умолчанию; Notepad++ и многие редакторы PHP по умолчанию используют окончания строк Linux, поэтому файлы будут совместимы с сервером. Один из простых способов проверить это-открыть файл в блокноте Windows. Если все отображается в одной строке, то файл был сохранен с окончаниями строк Linux.

Linux:

Если у вас возникли проблемы с файлом, работающим в среде Linux, откройте его в Редакторе, таком как Emacs или nano . Если вы видите какие-либо непечатаемые символы, то файл был сохранен с окончаниями строк Windows.

Поделиться


Beachhouse    

13 ноября 2012 в 02:21



3

Одна хитрая вещь, не охваченная другими ответами здесь, заключается в том, что файл .gitignore не будет работать, если у вас есть встроенные комментарии, как это:

foo/bar # The bar file contains sensitive data so we don't want to make this public

Поэтому, если у вас есть такие комментарии, измените их следующим образом:

# The bar file contains sensitive data so we don't want to make this public
foo/bar

Поделиться


James    

28 сентября 2017 в 20:18



3

Еще одна возможная причинанесколько экземпляров Git клиентов, работающих одновременно . Например, «git shell» + «GitHub Desktop» и т. д.


Это случилось со мной. Я использовал «GitHub Desktop» в качестве основного клиента, и он игнорировал некоторые новые настройки .gitignore: commit after commit:

  1. Ты что-то совершаешь.
  2. Далее, commit: он игнорирует настройки .gitignore. Commit включает в себя множество временных файлов, упомянутых в файле .gitignore.
  3. Очистить кэш Git; проверить, является ли .gitignore UTF-8; удалить файлы → commit → переместить файлы обратно; пропустить один commit-ничего не помогло.

Причина: редактор Visual Studio Code работал в фоновом режиме с тем же открытым репозиторием. Visual Studio Code имеет встроенный элемент управления Git, и это приводит к некоторым конфликтам.

Решение: дважды проверьте несколько скрытых клиентов Git и используйте только один клиент Git одновременно, особенно при очистке кэша Git.

Поделиться


Oleg Zarevennyi    

23 мая 2019 в 09:57



2

Просто удалите папку или файл, который был зафиксирован ранее в Git, следующей командой. Тогда файл gitignore будет отражать правильные файлы.

    git rm -r -f "folder or files insides"

Поделиться


Atif Hussain    

10 апреля 2017 в 08:13



2

У меня тоже есть такая же проблема на Ubuntu, я создал .gitignore из terminal, и это работает для меня

touch .gitignore

Поделиться


C.K    

20 июля 2019 в 00:01



2

Также возможно, что вы отредактировали файл .gitignore с помощью команды sudo . Я столкнулся с той же проблемой , и при выполнении команд: git status я все еще мог видеть файлы «should be ignored».

При редактировании с nano .gitignore вместо sudo nano .gitignore я мог видеть правильное отражение.

Поделиться


aviral sanjay    

22 октября 2018 в 06:15


Похожие вопросы:

Почему мой новый .gitignore автоматически игнорируется?

Итак, после преобразования моего репозитория в git и выполнения первой сборки некоторые каталоги сборки появились в git status : # On branch master # Changed but not updated: # (use git add…

Изменил ли Git поведение префикса»! » в файле .gitignore?

Я нашел нижеприведенное предложение в примечаниях к выпуску Git 2.7. Позвольте более позднему !/abc/def переопределить более ранний / abc, который появляется в том же файле .gitignore, чтобы…

Eclipse Git файл gitignore игнорируется

У меня есть проект Android, в котором я хочу, чтобы GIT игнорировал папки bin и gen. Поэтому я поместил в каталог проекта (я также пробовал его на уровне выше) следующий файл .gitignore: # built…

Где файл игнорируется .gitignore

Я делаю git add db/schema.rb The following paths are ignored by one of your .gitignore files: db/schema.rb Use -f if you really want to add them. fatal: no files added Где я могу найти этот файл,…

. gitignore игнорируется Visual Studio?

У меня есть проект git, над которым я работаю, используя Visual Studio 2013 и Git. Я заметил, что многие, если не все, файлы, перечисленные в моем файле .gitignore , все еще перечислены как…

Django settings.cpython-36.pyc не игнорируется gitignore

Файл в моем приложении settings.cpython-36.pyc не игнорируется, даже если я добавил его в файл .gitignore . Мой код пример : *.log *.pot *.pyc .idea LearnDjango/__pycache__/ venv/…

Не удалось найти причину, по которой папка игнорируется в Git

У меня есть РЕПО, где у меня есть папка под названием web/folder , которая игнорируется Git. В какой-то момент я хотел, чтобы эта папка была проигнорирована, и добавил ее с помощью файла .gitignore….

Git не игнорируется после добавления его в файл .gitignore

У меня есть репозиторий git с config.properties по умолчанию, где должны быть записаны некоторые пользовательские данные. Когда я изменяю контент, добавляю *.properties к своему .gitignore , а затем…

Git подмодуль игнорируется

Когда я пытаюсь добавить подмодуль через git submodule add git@domian:repo.git contact Я получаю следующее сообщение: Следующий путь игнорируется одним из ваших файлов .gitignore: контакт…

Git-почему мой исходный файл игнорируется?

Я использую git версию 2.15.0.windows.1 У меня есть следующее В моем файле gitignore: #BAM **/*[Bb][Aa][Mm]/* !**/*[Bb][Aa][Mm]/*.btt !**/*[Bb][Aa][Mm]/*.xls !**/*[Bb][Aa][Mm]/*.xlsx Насколько я…

Как создать файл .gitignore — CodeRoad

Мне нужно добавить некоторые правила в мой файл .gitignore . Однако я не могу найти его в своей папке проекта. Разве он не создается автоматически Xcode? Если нет, то какая команда позволяет мне создать его?

git

xcode4.3

gitignore

Поделиться

Источник


Luca    

24 мая 2012 в 19:48

25 ответов


  • Могу ли я Добавить файл .gitignore только для меня, который переопределяет project. gitignore?

    Я использую Git в Android Studio на машине OS X, и я хотел бы иметь личный файл .gitignore , который переопределяет .gitignore , которые находятся в проекте (я хочу, чтобы мой игнорировал файлы .iml ). Можно ли это сделать и как? Я попытался создать файл .gitignore в своем домашнем каталоге со…

  • Как создать файл .gitignore в Windows 10

    Я попытался создать файл .gitignore в корневом каталоге моего репозитория с помощью команды $ touch .gitginore в Git Bash году. Но когда я посмотрел на файл из Windows Explorer., он сказал, что это текстовый документ. Разве он не должен быть типа File ?



1694

Если вы используете Windows, он не позволит вам создать файл без имени файла в Windows Explorer. Он выдаст вам ошибку «вы должны ввести имя файла«, если вы попытаетесь переименовать текстовый файл как .gitignore

Чтобы обойти это я использовал следующие шаги

  1. Создайте текстовый файл gitignore.txt
  2. Откройте его в текстовом редакторе и добавьте свои правила, затем сохраните и закройте
  3. Удерживая SHIFT, щелкните правой кнопкой мыши папку, в которой вы находитесь, а затем выберите Открыть командное окно здесь
  4. Затем переименуйте файл в командной строке с помощью ren gitignore.txt .gitignore

Альтернативно @HenningCash предлагает в комментариях

Вы можете обойти эту ошибку Windows Explorer, добавив точку к
имени файла без расширения: .gitignore. будет автоматически
изменено на .gitignore

Поделиться


ajcw    

06 сентября 2012 в 10:59



518

Как можно проще (иногда): просто добавьте следующее в ваш предпочтительный интерфейс командной строки (GNU Bash, Git Bash и т. д.)

touch .gitignore

Как указал @Wardy в комментариях, touch работает на Windows, а также до тех пор, пока вы предоставляете полный путь. Это также может объяснить, почему она не работает для некоторых пользователей на Windows : команда touch , по-видимому, не находится в $PATH на некоторых версиях Windows по умолчанию.

C:\> "c:\program files (x86)\git\bin\touch.exe" .gitignore

Поделиться


kaiser    

20 февраля 2013 в 11:55



316

Самый простой способ создать файл .gitignore в Windows Explorer-это создать новый файл с именем .gitignore. .
Это позволит пропустить проверку наличия расширения файла, так как на самом деле имеет пустое расширение файла.

Поделиться


chos    

24 июля 2013 в 14:31


  • Как просто создать файл .gitignore локально в Ubuntu?

    Я не могу вручную создать файл .gitignore с помощью опции create document. Я нашел много способов в интернете,но они немного сложны и обходны. Один из способов, который я попробовал, — это создать файл .txt и переименовать его в .gitignore с помощью командной строки. Есть ли какой-нибудь простой…

  • Как отредактировать файл gitignore

    Я начал TheOdinProject на Ubuntu 18.4, и в разделе Git он говорит мне отредактировать файл .gitignore. Я уже создал его с помощью touch .gitignore , и он появляется, когда я набираю ls -la , но я не вижу его в файлах. В видео https://www.youtube.com/watch?v=HVsySz-h9r4, на которое ссылаются файл…



191

Файл .gitignore по умолчанию не добавляется в репозиторий. Используйте vi или ваш любимый текстовый редактор, чтобы создать файл .gitignore, а затем выдайте git add .gitignore , а затем git commit -m "message" .gitignore . Следующие команды позаботятся об этом.

> .gitignore
git add .gitignore
git commit -m "message" .gitignore

Поделиться


sully6768    

24 мая 2012 в 19:51



121

  1. Откройте Программу » Блокнот».
  2. Добавьте содержимое вашего файла gitignore.
  3. Нажмите кнопку «Save as» и выберите «all files».
  4. Сохранить

    как .gitignore .

    ======== легко!

Командная строка не требуется! ========

Поделиться


Unknown    

31 мая 2014 в 13:53



51

Простой способ получить значение по умолчанию git ignore, не возясь с create/copy/paste, — это использовать команду curl из terminal. Сначала cd в корневой каталог ваших проектов, а затем выполните команду, заменив MY_API_NAME вашим именем API из одного из следующих двух источников:

curl -o .gitignore https://www.gitignore.io/api/MY_API_NAME

Вы можете найти свое имя API, выполнив поиск в списке здесь и нажав кнопку Создать.

Java пример:

curl -o .gitignore https://www.gitignore.io/api/java

В качестве альтернативы вы можете использовать те, что находятся на GitHub. Найдите имя файла для вашего API здесь .

curl -o .gitignore https://raw.githubusercontent.com/github/gitignore/master/MY_API_NAME.gitignore

Java пример:

curl -o .gitignore https://raw.githubusercontent.com/github/gitignore/master/Java.gitignore

Вот несколько аналогичных альтернатив для Windows.

Но, честно говоря, установка этого выглядит как больше хлопот, чем того стоит. Если бы у меня был Windows, то я бы просто создал пустой файл с именем .gitignore в корневой папке моего проекта, а затем скопировал и вставил текст по умолчанию из gitignore.io или GitHub.

Поделиться


Suragch    

23 сентября 2016 в 05:34



46

На Windows вы можете использовать cmd
echo "" >.gitignore

Или используйте Git Bash cmd
touch .gitignore ,
это полезно для системы Linux и Mac

Поделиться


seay    

17 мая 2016 в 01:05



38

Я тоже хочу внести свой вклад. На этот раз анимированный 🙂

VIM (мини-учебник):

i   - start editing
ESC - get back to normal mode
:w  - save 
:q  - quit

Поделиться


Oo.oO    

02 июня 2017 в 12:29



38

Использование консоли Git Bash.

-Перейдите к своему проекту
-Тип «сенсорный .gitignore»

файл .gitignore будет создан для вас.

Поделиться


Roberto Rodriguez    

17 мая 2016 в 00:45



32

Вот хороший совет под Windows:

  • Щелкните правой кнопкой мыши в Windows Explorer, Создать > Текстовый документ
  • Назовите его, гитиньор. (с точкой trailing — это наконечник)
  • В итоге вы получаете файл .gitignore 🙂

Протестировано под Windows 7 и 8.

Этот совет предполагает, что ваш Windows Explorer отображает расширения файлов.

Поделиться


tanguy_k    

21 октября 2014 в 10:36



30

Мой вклад направлен на тех, кто работает на Mac, и он может быть применен не только к тем, кто работает над проектом iOS (как подразумевается в вопросе, упоминающем Xcode), но и к любому типу проектов.


Самый простой способ сделать это-зайти в terminal и запустить vim .gitignore , а затем добавить файлы. Обычно вы можете просто скопировать то, что вам нужно, из одного из шаблонов на GitHub в https://github.com/github/gitignore .

Шаг 1

Находясь в проекте, введите следующую команду

vim .gitignore

Шаг 2

Теперь у вас есть ваш файл, открытый с Vim .

Нажмите кнопку i , чтобы вставить текст. Вы увидите, что файл готов, когда увидите —INSERT— внизу.

Шаг 3 (Вариант 1)

Для проектов Objective-C вы можете скопировать из https://raw.githubusercontent.com/github/ gitignore/master/Objective-C.gitignore и вставьте его в свой файл .gitignore :

Нажмите Esc , введите :wq и нажмите Return . Который сохраняет файл.

Шаг 3 (Вариант 2)

Добавьте любые файлы, применимые к вашему проекту.

Если вы не знаете, что добавить, лучше всего использовать ключевые слова в поисковой системе, чтобы включить тип проекта и текстовый редактор. Например, если вы используете Sublime Text , вы хотите добавить

*.sublime-workspace

И если вы работаете с проектом Cordova в Dreamweaver , вы хотели бы добавить

_notes
dwsync.xml

Поделиться


JGallardo    

16 июля 2014 в 17:45



17

Создайте файл .gitignore в поле Включить все файлы и каталоги, которые вы не хотите фиксировать.

Пример:

#################
## Eclipse
#################

*.pydevproject
.project
.metadata
.gradle
bin/
tmp/
target/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath

# External tool builders
.externalToolBuilders/

# Locally stored "Eclipse launch configurations"
*.launch

# CDT-specific
.cproject

# PDT-specific
.buildpath


#################
## Visual Studio
#################

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.sln.docstates

# Build results

[Dd]ebug/
[Rr]elease/
x64/
build/
[Bb]in/
[Oo]bj/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.log
*.scc

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile

# Visual Studio profiler
*.psess
*.vsp
*.vspx

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# NCrunch
*.ncrunch*
.*crunch*.local.xml

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.Publish.xml
*.pubxml

# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
#packages/

# Windows Azure Build Output
csx
*.build.csdef

# Windows Store app package directory
AppPackages/

# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.[Pp]ublish.xml
*.pfx
*.publishsettings

Поделиться


Anderson Lopes    

28 октября 2013 в 01:33



15

http://gitignore.io — это утилита с открытым исходным кодом, которая может помочь вам создать полезные файлы .gitignore для вашего проекта. Существует также командная строка API, доступ к которой можно получить с помощью команды gi : http://gitignore.io/cli

  1. Установите команду gi для OS X :

    $ echo "function gi() { curl http://gitignore.io/api/\$@ ;}" >> ~/.bash_profile && source ~/.bash_profile

  2. Просмотр содержимого файла .gitignore (вывод: http://gitignore.io/api/xcode,osx ):

    $ gi xcode,osx

  3. Вы должны увидеть выходные данные на terminal, если хотите добавить результаты в новый файл .gitignore.

    $ gi xcode,osx >> .gitignore

Поделиться


Joe    

18 октября 2013 в 13:50


Поделиться


NIKHIL C M    

23 августа 2016 в 04:57


Поделиться


Sivakumar Kailasam    

24 мая 2012 в 19:53



13

в windows откройте командную строку dos(cmd) windows, используйте командную строку:

type > .gitignore

Поделиться


caoglish    

26 ноября 2013 в 07:16



10

Следующее работает в PowerShell и командной строке (CMD):

echo '*.ignore_me' > .gitignore

Я столкнулся со странной проблемой, когда Git эффективно не читал файл .gitignore. Затем я удалил файл .gitignore и создал его с помощью Vim, который отлично работал.

Чтобы добавить дополнительные файлы для игнорирования, просто вызовите следующую команду:

echo 'another_file_to_ignore' >> .gitignore

Он добавит дополнительные файлы к существующему файлу .gitignore.

Поделиться


MadJangi    

01 февраля 2014 в 21:07



10

Поделиться


Yuliia Ashomok    

28 апреля 2015 в 15:04



9

Вы можете непосредственно создать пустой файл .gitignore , открыть cmd в нужном месте, чтобы добавить этот файл, и ввести следующую команду

copy con .gitignore

нажмите ENTER
теперь вы находитесь в режиме редактирования вновь созданного файла, но нам не нужно ничего добавлять сейчас, просто нажмите F6 , а затем нажмите ENTER
теперь у вас есть пустой файл .gitignore , отредактируйте свой файл в любом редакторе, который у вас есть

Поделиться


Amado Saladino    

03 ноября 2018 в 10:39



9

Windows

Имя файла : «.gitignore» ,
Сохранить как тип : все файлы

Поделиться


Ishan Lakshitha    

16 января 2019 в 17:45



8

1) создайте файл .gitignore, поэтому для этого вы просто создадите файл .txt и измените расширение следующим образом:

затем вы должны изменить имя, написав следующую строку на cmd:

 rename git.txt .gitignore

где git.txt-это имя файла, который вы только что создали.

Затем вы можете открыть файл и записать все файлы, которые вы не хотите добавлять в репозиторий. Например мой выглядит так:

#OS junk files
[Tt]humbs.db
*.DS_Store

#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.pyc
*.xml
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad

#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*

#Project files
[Bb]uild/

#Subversion files
.svn

# Office Temp Files
~$*

Как только у вас это есть, вам нужно добавить его в свой репозиторий git. Вы должны сохранить файл, где находится ваш репозиторий.

Затем в вашем git bash вы должны написать следующую строку:

Если ответчик уже существует, то вы должны сделать следующее:

1) git rm -r —кэшируется .
2) git add .
3) git commit -м «.gitignore теперь работает»

Если Шаг 2 не работает, то вы должны написать маршрут отверстия файлов, которые вы хотели бы добавить.

Надеюсь, это поможет!

Поделиться


SomeAnonymousPerson    

17 февраля 2015 в 14:12



8

1. Open git terminal
2. go to git repository of the project
3. create a .gitignore file by **touch .gitignore** command
4. **git add .gitignore** command to add ignore file
5. set ignore rules in the ignore file
6. run the command **cat .gitignore**

Выполнив команду на шаге 3, вы получите файл .gitignore в каталоге проекта.
Спасибо.

Поделиться


Rashedul.Rubel    

20 февраля 2015 в 11:05



8

windows:
в командной строке:

.>.gitignore

это покажет ошибку, но будет работать

Поделиться


Timar Ivo Batis    

31 октября 2018 в 22:53



7

Если вы не хотите, чтобы ваш .gitignore вмешивался в чужой репозиторий, вы также можете использовать .git/info/exclude . (См . http://help.github.com/ignore-files/ )

Поделиться


EfForEffort    

24 мая 2012 в 23:58



6

Без использования командной строки

  1. Откройте texteditor и добавьте свои правила.
  2. Нажмите Файл->Сохранить Как
  3. Сохраните его как «.gitignore» (включите цитаты)

Поделиться


YellowJ    

12 декабря 2015 в 08:28


Похожие вопросы:

Как игнорировать файл .gitignore?

Я создал .gitignore, чтобы игнорировать неотслеживаемый файл с именем tola.txt, теперь, когда я делаю git status, теперь tola.txt исчезает, но .gitignore попадает под неотслеживаемые файлы. Я…

как правильно установить файл .gitignore

Когда я пытаюсь зафиксировать изменения в master git, он показывает мне неверсированные файлы с расширениями .dll,.cash,… Во время Гугла я обнаружил, что должен создать файл .gitignore (например,…

Как обрабатывается файл .gitignore?

Я разрабатываю систему, имитирующую функциональность gitignore. Я добавлю определенные правила ( формат шаблона gitignore) в файл, и файл будет введен в файл скрипта (perl), когда есть какая-либо…

Могу ли я Добавить файл .gitignore только для меня, который переопределяет project. gitignore?

Я использую Git в Android Studio на машине OS X, и я хотел бы иметь личный файл .gitignore , который переопределяет .gitignore , которые находятся в проекте (я хочу, чтобы мой игнорировал файлы .iml…

Как создать файл .gitignore в Windows 10

Я попытался создать файл .gitignore в корневом каталоге моего репозитория с помощью команды $ touch .gitginore в Git Bash году. Но когда я посмотрел на файл из Windows Explorer., он сказал, что…

Как просто создать файл .gitignore локально в Ubuntu?

Я не могу вручную создать файл .gitignore с помощью опции create document. Я нашел много способов в интернете,но они немного сложны и обходны. Один из способов, который я попробовал, — это создать…

Как отредактировать файл gitignore

Я начал TheOdinProject на Ubuntu 18.4, и в разделе Git он говорит мне отредактировать файл .gitignore. Я уже создал его с помощью touch .gitignore , и он появляется, когда я набираю ls -la , но я не…

Как создать файл .gitignore для prestashop 1.7

Я хотел бы знать, как я мог бы создать файл .gitignore для Prestashop 1.7, чтобы иметь возможность нести хорошую версию кода, как для среды разработки, так и для того, чтобы иметь его готовым в…

как gitignore файл без повреждения файла gitignore мастера

У меня есть скрипт, который я использую из корня моего РЕПО, и я не хочу, чтобы он появлялся каждый раз, когда я git status . Я думал добавить его в .gitignore , но я не хочу, чтобы это изменение…

Как добавить контент в файл .gitignore?

Я читаю книгу Итана Брауна под названием Learning JavaScript. На Ch3 автор начнет описывать и учить, как использовать некоторые инструменты, которые будет интересно изучить на протяжении всего…

игнорирование файлов в Git – Zencoder

В системе Git можно настроить возможность автоматического игнорирования файлов.

То есть, можно указать Git, что файлы определенного типа не нужно отслеживать. Выполняется такая настройка с помощью специального файла . Подобная возможность отключения отслеживания файлов в системе Git может понадобиться в случае, когда автоматически генерируются служебные файлы.

К примеру, если развертывать в проекте Compass, то будет создан каталог , в который данный фреймворк помещает свой кэш, генерируемый автоматически при каждом изменении любого из файлов проекта.

Давайте на практике разберемся, каким образом можно настроить игнорирование файлов в Git с помощью .

Создание нового проекта

Создаю новый проект с именем , в котором помещаю несколько файлов разного типа:

$ mkdir git_ignore
$ cd git_ignore/
$ touch index.html style.css

Инициализирую репозиторий Git в директории , индексирую созданные файлы и фиксирую их:

$ git init
Initialized empty Git repository in /home/aaron/Projects/git_ignore/.git/
$ git add .
$ git commit -m 'First Commit'

Вывод команды показывает, что все чисто:

$ git status
On branch master
nothing to commit, working directory clean

Настройка игнорирования в .gitignore

Для настройки игнорирования определенных типов файлов в системе Git необходимо первоначально создать файл :

$ touch .gitignore

Откроем созданный файл в любом редакторе:

$ nano -w .gitignore

… и пропишем в нем следующие строки:

*.txt
*.md

Тем самым мы говорим Git, что нужно игнорировать все файлы с расширением и внутри директории . То есть, система контроля не будет отслеживать изменения во всех файлах этих типов.

Проиндексируем и зафиксируем изменения (создание файла настроек ), а затем проверим данный факт. Для этого в рабочей директории создаю еще несколько типов файлов:

$ touch main.css readme.txt humans.md

Затем выполняю индексацию всех файлов, которые были добавлены или изменены в рабочем каталоге:

$ git add .

И смотрю, что мне показывает команда :

$ git status
  On branch master
  Changes to be committed:
    (use "git reset HEAD <file>..." to unstage)

    new file:   main.css

Система Git увидела только новый файл . Два других файла — и — проигнорированы системой. Отлично! Зафиксирую изменения.

Можно создать еще пару файлов в разных директориях и посмотреть на вывод команды в консоли:

Усложнить задачу игнорирования в .gitignore

Можно усложнить задачу игнорирования в Git, добавив в файл директорию, содержимое которой также должно игнорироваться. Пускай это будет обычная директория и скрытая директория (с точкой перед именем):

Добавлю в файл пару строк таким образом:

$ cat .gitignore
*.txt
*.md
ignore/
.ignore/

Проиндексирую изменения, а затем выполню операции по созданию директорий и файлов внутри них:

$ mkdir ignore
$ mkdir .ignore
$ touch ignore/reset.css
$ touch .ignore/normilize.css

Вновь ввожу команду просмотра состояния репозитория Git:

$ git status
  On branch master
  nothing to commit, working directory clean

Все сработало — Git не захотел видеть директории , , а также их содержимое. Отлично!

Шаблоны в файле .gitignore

Для файла доступны шаблоны, с помощью которых можно задать маски для выборки необходимых типой файлов. Однако, обширная тема шаблонов выходит за рамки данной статьи. При желании можно почитать по теме шаблонов в книге “Pro Git — профессиональный контроль версий”.


gitgitignore

Игнорировать файлы в репозитории Git — Azure Repos



  • Чтение занимает 2 мин

В этой статье

Azure Repos | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017 | TFS 2015 | VS 2017 | VS 2015

Не все файлы, созданные или обновленные в коде, следует зафиксировать в Git.
Временные файлы из среды разработки, тестовые выходные данные и журналы — это все примеры файлов, которые создаются, но не являются частью базы кода.
Настройка файлов, отслеживаемых Git с помощью функции gitignore .

Из этого руководства вы узнаете, как выполнить следующие задачи:

  • Использование gitignore для предотвращения отслеживания файлов
  • Пропускать файлы только в вашей системе
  • Пропускать файлы во всех репозиториев в системе
  • Игнорировать изменения в зафиксированных файлах

Использование gitignore для предотвращения отслеживания файлов

Создайте gitignore -файл в репозитории Git, чтобы не допустить размещения в Git нежелательных файлов.
Share . gitignore в ветви по умолчанию в репозитории. Вы и ваша команда можете обновить файл, чтобы изменить типы файлов, которые следует игнорировать.

Создание. gitignore

Примечание

Visual Studio 2019 теперь включает в себя новое средство Git, обеспечивающее улучшенные возможности при подключении к репозиторию Git. Когда это средство включено, Team Explorer оперативно отключается при подключении к репозиторию Git. Вы можете получить новое средство, скачав Visual Studio 2019 версии 16.6. Чтобы включить и использовать новое средство, см. раздел Работа с Git в Visual Studio (предварительная версия).

Visual Studio автоматически создает gitignore -файл в репозитории при создании нового репозитория для проекта.

Скачайте файл template . gitignore для типа проекта и настройте его в соответствии с вашими потребностями.
Если проект не соответствует шаблону, можно создать пустой . gitignore из командной строки.
Перейдите в репозиторий Git и выполните одну из следующих команд, используя сведения о репозитории:

Windows

fsutil file createnew C:\Users\frank\myrepo\.gitignore 0

Linux и macOS

touch /home/frank/myrepo/.gitignore

Git применяет . gitignore к папке и вложенным папкам, где она находится. Мы рекомендуем разместить . gitignore в корневой папке репозитория, чтобы избежать путаницы.

Настройка. gitignore

Измените gitignore , чтобы включить в репозиторий типы файлов, пути и шаблоны файлов.
Git начинает пропускать эти файлы сразу после обновления . gitignore. Если другим пользователям вашей команды требуется один и тот же набор игнорируемых файлов, обязательно зафиксируйте изменения.

Примечание

Visual Studio 2019 теперь включает в себя новое средство Git, обеспечивающее улучшенные возможности при подключении к репозиторию Git. Когда это средство включено, Team Explorer оперативно отключается при подключении к репозиторию Git. Вы можете получить новое средство, скачав Visual Studio 2019 версии 16.6. Чтобы включить и использовать новое средство, см. раздел Работа с Git в Visual Studio (предварительная версия).

Чтобы изменить файл gitignore для репозитория, перейдите в представление параметров в Team Explorer, а затем выберите Параметры репозитория. Выберите изменить для gitignore.

Используйте текстовый редактор, например следующий пример, в котором используется vim:

vim /home/frank/myrepo/.gitignore

Каждая строка в . gitignore исключает файл или набор файлов, соответствующих шаблону.
Полный синтаксис gitignore очень гибок.
Ниже приведены некоторые примеры наиболее распространенных записей.

# ignore a single file
mycode.class

# ignore an entire directory
/mydebugdir/

# ignore a file type
*.json

# add an exception (using !) to the preceding rule to track a specific file
!package.json

Примечание

Пользователи Windows. все пути к файлам в gitignore -файле используют разделитель косой черты, а не обратную косую черту.

Пропускать файлы только в вашей системе

Ваш gitignore является общим для участников команды, так как файл зафиксирован и отправлен в репозиторий Git.
Чтобы исключить файлы только в системе, измените файл . git/info/Exclude в локальном репозитории.
Изменения в этом файле не являются общими для других пользователей.
Они применяются только к файлам в этом репозитории.
Для этого файла используется тот же синтаксис , что и в файле. gitignore.

Пропускать файлы во всех репозиториев в системе

Настройте Global . gitignore для использования во всех репозиториев в системе с помощью программы командной строки git config , как показано в следующем примере:

git config core.excludesfile C:\Users\frank\.gitignore_global

Этот подход удобен для игнорирования целых типов файлов, которые вы не хотите зафиксировать, например скомпилированных двоичных файлов.

Игнорировать изменения в зафиксированных файлах

Временно игнорировать изменения

Во время разработки удобно отключить отслеживание изменений файлов в файле, зафиксированном в репозитории Git.
Этот подход удобен при настройке параметров или файлов конфигурации, которые являются частью источника проекта, для собственной рабочей среды.

git update-index --skip-worktree <file>

Возобновление отслеживания файлов с помощью следующей команды:

git update-index --no-skip-worktree <file>

Вместо этого можно использовать следующие параметры. Эти параметры предназначены главным образом для отметки файлов, которые не должны изменяться разработчиками.

Чтобы отключить отслеживание изменений, выполните следующие действия.

git update-index --assume-unchanged <file>

Чтобы возобновить отслеживание изменений, выполните следующие действия.

git update-index --no-assume-unchanged <file>
Безвозвратная отмена отслеживания файла

Если файл уже записан в Git, он .gitignore не применяется.
Git продолжит отслеживание изменений в этом файле.

Если вы хотите отключить отслеживание файла, необходимо явно указать git, который он должен удалить из отслеживания.
Следуя этим указаниям, файл останется в локальном рабочем каталоге, но не будет относиться к записи в Git.

  1. Добавьте файл в .gitignore .

  2. Выполните следующую команду:

    git rm --cached  <file>
    
  3. Зафиксируйте удаление файла и обновленный файл . gitignore в репозитории.

Дальнейшие действия



gitignore GIT


Всем доброго времени суток и мы продолжаем знакомство с контролем версий git.


Откроем консольное окно GIT Bash Here в папке с репозиторием.


И давайте сразу рассмотрим следующую команду.

git status


c помощью этой команды мы можем определить все проиндексированные и неиндексированные файлы. Под индексированными файлами подразумевается что они были добавлены в наш git репозиторий с помощью команды git add (файлы) и не занесены в файл .gitignore про него мы поговорим далее. И неиндексированные, следовательно либо они содержаться в файле .gitignore, или мы их только добавили, удалили или изменили.


Все проиндексированные файлы и директории отображаются зеленым цветом, а неиндексированные красным.


Для примера давайте добавим в нашу папку с репозиторием новый файл или директорию, далее повторно выполним команду git status.


И мы увидим что данный файл или директория отображаются красным цветом так как не были проиндексированы версией контроля. Для индексации их необходимо добавить командой:


git add название файла или директории


после этой команды наш файл будет проиндексирован убедится в этом вы можете повторно выполнив команду git status. Такая же ситуация произойдет если мы внесем изменения в какой либо файл или удалим его из репозитория, здесь также придется зафиксировать изменение индексацией в системе контроля git.


Вывод команды git status можно привести к более читабельному виду добавить к ней флаг -s

git status -s


в чем же удобство такой команды? А в том что она более кратко выводит сообщение о состояниях файлов, пример вывода:


A file1 — проиндексированный файл


AD file2 — файл который был удален


M file3 — файл в который были внесены изменения


?? file4 — неизвестный файл или неиндексированный.


Вот так вот с помощью команды git status мы можем определять состояния файлов.


Идем дальше, могут возникнуть ситуации когда нам нет необходимости учитывать или индексировать файл в системе контроля.


И для того чтобы этой файл или группа файлов не учитывались, существует специальный файл .gitignore в котором перечисляются все файлы которые не подлежат индексации в системе, то есть они в ней никак не учитываются.



Пример: давайте добавим новый файл в нашу папку репозитория и здесь же создадим файл .gitignore у этого файла как и у .htaccess имя не указывается.


В самом .gitignore необходимо указать какие файлы мы хотим чтобы не учитывались.Пример:

#Файлы которые не будут учитываться
file.php
*.xml
rules.php
#Папки которые не будут учитываться
folder


С помощью решетки мы указываем однострочный комментарий, это условные обозначения которые никак не влияют на результат.


Как видите здесь мы запретили индексацию файла file.php, всех файлов заканчивающихся на xml и директорию folder.



В принципе здесь ничего сложного нет, обычно в этом файле указываются различные стороние библиотеки, модули, компоненты и т. д., содержание которых мы как правило не трогаем.


И напоследок я хотел вам рассказать еще об одной команде которая можем вам быть крайне полезна. С помощью команды git status мы можем отследить только внешнее состояние файла. Но что если мы хотим посмотреть внесенные изменения внутри файла? Для этого существует команда git diff


Введите:

git diff



если ваши файлы все проиндексированны, то данная команда ничего не вернет. Давайте внесем изменения в файлы репозитория. И попробуем выполнить данную команду повторно.


Нам вернулись все наши изменения в виде отображения — красным цветом обозначается старое состояние ,зеленым цветом новое.


Тут еще важно понимать что данная команда показывает только все изменения еще неиндексированных файлов.


Если вы выполните команду

git add .


то есть добавите(проиндексируете) все файлы тогда, команда git diff вернет вам уже пустой результат.


Если мы хотим просмотреть внесенные изменения уже проиндексированных файлам , нам нужно добавить флаг —cached

git diff --cached


в итоге мы увидим все изменения уже в проиндексированных файлах.


Вот так мы можем отслеживать состояние файлов и их изменения.


На этом дорогие друзья данная статья подходит к концу. Надеюсь сегодня вы узнали что то новое.


Я желаю вам успехов и удачи! Пока!

Правила синтаксиса файла .gitignore – RDB IT Support

Правила синтаксиса файла .gitignore

В этой статье будут приведены примеры редактирования файла .gitignore и дан поный список правил синтаксиса.

 

Правила синтаксиса

  • Одна строчка — одно правило,
  • Пустые строки игнорируются,
  • Комментарии доступны через решётку(#) в начале строки,
  • Символ «/» в начале строки указывает, что правило применяется только к файлам и папкам, которые располагаются в той же папке, что и сам файл .gitignore,
  • Доступно использовать спецсимволы: звёздочка(*) заменяет любое количество символов(ноль или больше), вопросик(?) заменяет от нуля до одного символа. Можно размещать в любом месте правила,
  • Две звёздочки(**) используются для указания любого количества поддиректорий, подробнее смотри ниже в примерах,
  • Восклицательный знак(!) в начале строки означает инвертирование правила, необходим для указания исключений из правил игнорирования,
  • Символ «\» используется для экранирования спецсимволов, например, чтобы игнорировать файл с именем «!readme!.txt», нужно написать такое правило: «\!readme!.txt»,
  • Для игнорирования всей директории, правило должно оканчиваться на слэш(/), в противном случае правило считается именем файла.

Пример файла .gitignore

# Игнор-лист файлов проекта
# Игнорировать ВСЕ файлы и директории, включая поддиректории и файлы в них
*
# ---- ФАЙЛЫ ----
# Игнорирование по типу файла, будут игнорироваться в АБСОЛЮТНО всех директориях
# Например /files/data.zip, /server.log, /uploads/users/data/info.xls
*.zip
*.log
*.pdf
*.xls
# Игнорирование файла во ВСЕХ директориях
# Например /params/db/config.php, /config.php
config.php
# Игнорирование конкретного файла ТОЛЬКО в корне проекта
# (корнём считается расположение файла .gitignore)
# Например НЕ БУДЕТ проигнорирован файл /db/config.php
/config.php
# Игнорирование конкретного файла ТОЛЬКО в указанной директории
# Например НЕ БУДЕТ проигнорирован файл /prod/params/config.php
/params/config.php
# ---- ДИРЕКТОРИИ ----
# Игнорирование всех файлов и папок ТОЛЬКО в конкретной директории(включая поддиректории и файлы в них)
# Например /images/user.jpg, /images/company/logo.png
# НЕ БУДУТ проигнорированы файлы и папки /prod/images/user.jpg
/images/*
# Игнорирование всех файлов и папок в ЛЮБЫХ директориях с указанным именем
# Например /images/user.jpg, /core/images/user.jpg
images/*
# Игнорирование ВСЕХ html-файлов в ОДНОЙ КОНКРЕТНОЙ директории(НЕ ВКЛЮЧАЯ поддиректории)
# Например /private/index.html
# НЕ БУДУТ проигнорированы файлы в /private/ivan/index.html
/private/*.html
# Игнорирование ВСЕХ html-файлов в КОНКРЕТНОЙ директории ВКЛЮЧАЯ поддиректории
# Например /private/info.html, /private/users/ivan/info.html
/private/**/*.html
# ---- РАЗНОЕ ----
# Исключение из игнорирования
# Игнорирование ВСЕХ файлов и папок внутри директории /secret,
# за исключением файла /secret/free.txt, он не будет проигнорирован
/secret/*
!/secret/free.txt
# Игнорирование файла с именем, содержащим спецсимволы
# Например !readme!.txt
\!readme!.txt
# Игнорирование всех JPG и JPEG файлов внутри директорий,
# которые начинаются на "h" и МОГУТ содержать ещё один символ после
# Например /images/h5/user.jpg, /images/h/company.jpeg
/images/h?/*.jp?g

Git — документация gitignore

Файл gitignore определяет преднамеренно неотслеживаемые файлы, которые
Git должен игнорировать.
Файлы, уже отслеживаемые Git, не затрагиваются; см. ПРИМЕЧАНИЯ
подробности ниже.

Каждая строка в файле gitignore определяет шаблон.
Решая, игнорировать ли путь, Git обычно проверяет
шаблонов gitignore из нескольких источников, со следующими
порядок приоритета, от высшего к низшему (в пределах одного уровня
приоритет, результат решает последний соответствующий шаблон):

  • Шаблоны, считываемые из командной строки для тех команд, которые поддерживают
    их.

  • Шаблоны читаются из файла .gitignore в том же каталоге
    в качестве пути или в любом родительском каталоге с шаблонами в
    файлы более высокого уровня (до верхнего уровня рабочего дерева) переопределяются
    теми, кто находится в файлах более низкого уровня, вплоть до каталога, содержащего файл.
    Эти шаблоны совпадают относительно расположения
    .gitignore файл. Обычно в проект входят такие
    .gitignore файлов в своем репозитории, содержащих шаблоны для
    файлы, созданные как часть сборки проекта.

  • Паттерны читаются из $ GIT_DIR / info / exclude .

  • Паттерны читаются из файла, указанного в конфигурации
    переменная core.excludesFile .

В какой файл поместить узор, зависит от того, для чего он предназначен.
использоваться.

  • Шаблоны, которые должны контролироваться по версиям и распространяться на
    другие репозитории через клон (т.е. файлы, которые понадобятся всем разработчикам)
    игнорировать) должен перейти в .gitignore файл.

  • Паттерны, которые
    специфичны для конкретного репозитория, но к которым не нужно делиться
    с другими связанными репозиториями (например, вспомогательными файлами, находящимися внутри
    репозиторий, но относятся к рабочему процессу одного пользователя) должны входить в
    файл $ GIT_DIR / info / exclude .

  • паттернов, которые пользователь хочет, чтобы Git
    игнорировать во всех ситуациях (например, резервные или временные файлы, созданные
    выбранный пользователем редактор) обычно переходят в файл, указанный
    ядро.excludesFile в пользовательском файле ~ / .gitconfig . Его значение по умолчанию —
    $ XDG_CONFIG_HOME / git / ignore. Если $ XDG_CONFIG_HOME либо не установлен, либо
    пусто, вместо него используется $ HOME / .config / git / ignore.

Базовые сантехнические инструменты Git, такие как
git ls-files и git read-tree , читать
gitignore шаблонов, заданных параметрами командной строки или из
файлы, указанные в параметрах командной строки. Git более высокого уровня
инструменты, такие как git status и git add ,
использовать шаблоны из указанных выше источников.

Git — документация gitignore

Файл gitignore определяет преднамеренно неотслеживаемые файлы, которые
Git должен игнорировать.
Файлы, уже отслеживаемые Git, не затрагиваются; см. ПРИМЕЧАНИЯ
подробности ниже.

Каждая строка в файле gitignore определяет шаблон.
Решая, игнорировать ли путь, Git обычно проверяет
шаблонов gitignore из нескольких источников, со следующими
порядок приоритета, от высшего к низшему (в пределах одного уровня
приоритет, результат решает последний соответствующий шаблон):

  • Шаблоны, считываемые из командной строки для тех команд, которые поддерживают
    их.

  • Шаблоны читаются из файла .gitignore в том же каталоге
    в качестве пути или в любом родительском каталоге с шаблонами в
    файлы более высокого уровня (до верхнего уровня рабочего дерева) переопределяются
    теми, кто находится в файлах более низкого уровня, вплоть до каталога, содержащего файл.
    Эти шаблоны совпадают относительно расположения
    .gitignore файл. Обычно в проект входят такие
    .gitignore файлов в своем репозитории, содержащих шаблоны для
    файлы, созданные как часть сборки проекта.

  • Паттерны читаются из $ GIT_DIR / info / exclude .

  • Паттерны читаются из файла, указанного в конфигурации
    переменная core.excludesfile .

В какой файл поместить узор, зависит от того, для чего он предназначен.
использоваться.

  • Шаблоны, которые должны контролироваться по версиям и распространяться на
    другие репозитории через клон (т.е. файлы, которые понадобятся всем разработчикам)
    игнорировать) должен перейти в .gitignore файл.

  • Паттерны, которые
    специфичны для конкретного репозитория, но к которым не нужно делиться
    с другими связанными репозиториями (например, вспомогательными файлами, находящимися внутри
    репозиторий, но относятся к рабочему процессу одного пользователя) должны входить в
    файл $ GIT_DIR / info / exclude .

  • паттернов, которые пользователь хочет, чтобы Git
    игнорировать во всех ситуациях (например, резервные или временные файлы, созданные
    выбранный пользователем редактор) обычно переходят в файл, указанный
    ядро.excludesfile в пользовательском файле ~ / .gitconfig . Его значение по умолчанию —
    $ XDG_CONFIG_HOME / git / ignore. Если $ XDG_CONFIG_HOME либо не установлен, либо
    пусто, вместо него используется $ HOME / .config / git / ignore.

Базовые сантехнические инструменты Git, такие как
git ls-files и git read-tree , читать
gitignore шаблонов, заданных параметрами командной строки или из
файлы, указанные в параметрах командной строки. Git более высокого уровня
инструменты, такие как git status и git add ,
использовать шаблоны из указанных выше источников.

Git — git-check-ignore Документация

По умолчанию любой из заданных путей, соответствующих шаблону игнорирования
будет выводиться по одному в строке. Если ни один шаблон не соответствует заданному пути,
для этого пути ничего выводиться не будет; это означает, что путь не будет
игнорируется.

Если указано --verbose , вывод представляет собой серию строк вида:

<источник>

— это путь к запрашиваемому файлу, — это
соответствующий шаблон,— исходный файл шаблона, а — номер строки шаблона в этом источнике.Если узор
содержит ! Префикс или суффикс /, он будет сохранен в
выход. <источник> будет абсолютным путем при ссылке на файл
настраивается core.excludesFile или относительно корня репозитория
при обращении к .git / info / exclude или к файлу исключения для каждого каталога.

Если указано -z , пути в выходных данных разделяются
нулевой символ; если также указано --verbose , то нулевые символы
также используются вместо двоеточий и жестких вкладок:

<источник> <ПУСТО> <линенум> <ПУСТО> <шаблон> <ПУСТО> <путь> <ПУСТО>

Если указано -n или - несоответствие , несовпадающие пути будут
также будут выводиться, и в этом случае все поля в каждой выходной записи, кроме
для будет пустым.Это может быть полезно при запуске
неинтерактивно, чтобы файлы можно было постепенно передавать в
STDIN длительного процесса проверки-игнорирования, и для каждого из них
файлов, STDOUT покажет, соответствует ли этот файл шаблону или
нет. (Без этой опции было бы невозможно определить,
отсутствие вывода для данного файла означает, что он не соответствует ни одному
шаблон, или что результат еще не был сгенерирован.)

Буферизация происходит, как описано в параметре GIT_FLUSH в
git [1].Вызывающий отвечает за предотвращение тупиковых ситуаций.
вызвано переполнением входного буфера или чтением с пустого выхода
буфер.

Git — gitrepository-layout Документация

объекта

Хранилище объектов, связанное с этим репозиторием. Обычно
хранилище объектов самодостаточно (т.е. все объекты
на которые ссылается найденный в нем объект, также
найдено в нем), но есть несколько способов его нарушить.

  1. У вас может быть неполный, но доступный локально репозиторий
    путем создания мелкого клона.См. Git-clone [1].

  2. Вы можете использовать objects / info / alternates или
    $ GIT_ALTERNATE_OBJECT_DIRECTORIES механизмов до заимствовать
    объекты из других хранилищ объектов. Репозиторий с таким типом
    неполного хранилища объектов не подходит для публикации для
    использовать с немыми транспортами, но в остальном все в порядке, пока
    объектов / информация / чередуется точек в объекте хранит его
    заимствует из.

    Этот каталог игнорируется, если установлен $ GIT_COMMON_DIR и
    Вместо этого будет использоваться «$ GIT_COMMON_DIR / objects».

объекта / [0-9a-f] [0-9a-f]

Вновь созданный объект сохраняется в собственном файле.
Объекты отображаются в 256 подкаталогах с использованием
первые два символа имени объекта sha1 для
сохранить количество записей каталога в объектах
себе к управляемому числу. Найдены объекты
здесь часто называют неупакованных (или сыпучих ) объектов.

предмета / упаковка

Пакеты (файлы, в которых хранится много объектов в сжатом виде,
вместе с индексными файлами, чтобы они могли быть случайным образом
доступ) находятся в этом каталоге.

объекта / информация

Дополнительная информация о хранилище объектов есть
записано в этом каталоге.

объекта / информация / упаковки

Этот файл предназначен для того, чтобы помочь тупому транспорту обнаружить, какие пакеты
доступны в этом хранилище объектов. Всякий раз, когда пачка
добавлен или удален git update-server-info должен быть запущен
чтобы поддерживать этот файл в актуальном состоянии, если репозиторий
опубликовано для немого транспорта. git repack делает это
по умолчанию.

объекта / информация / альтернативы

В этом файле записываются пути к хранилищам альтернативных объектов,
это хранилище объектов заимствует объекты, по одному пути на каждый
линия. Обратите внимание, что не только собственные инструменты Git используют его локально,
но сборщик HTTP также пытается использовать его удаленно; это
обычно будет работать, если у вас есть относительные пути (относительные
в базу данных объектов, а не в репозиторий!) в вашем
альтернативный файл, но он не будет работать, если вы используете абсолютный
пути, кроме абсолютного пути в файловой системе и веб-URL
та же.См. Также objects / info / http-alternates .

объекта / информация / http-alternates

В этом файле записываются URL-адреса хранилищ альтернативных объектов,
это хранилище объектов заимствует объекты, чтобы использовать их, когда
репозиторий загружается через HTTP.

ссылки

Ссылки хранятся в подкаталогах этого
каталог. Команда git prune знает, что нужно сохранять
объекты, доступные по ссылкам, найденным в этом каталоге, и
его подкаталоги.Этот каталог игнорируется (кроме refs / bisect,
refs / rewritten и refs / worktree), если $ GIT_COMMON_DIR
set и вместо него будет использоваться «$ GIT_COMMON_DIR / refs».

ссылки / головы / наименование

записей объектов фиксации ветки имени

ссылки / теги / имя

записывает любое имя объекта (не обязательно фиксацию
объект или объект тега, указывающий на объект фиксации).

ссылки / пульты / имя

записей фиксации объектов копируемых ветвей
из удаленного репозитория.

ссылки / replace /

записывает SHA-1 объекта, который заменяет .
Это похоже на info / grafts и используется внутри компании и
поддерживается git-replace [1]. Такие рефы можно обменять
между репозиториями, а графтов нет.

ссылки

записывает ту же информацию, что и ссылки / головы /, ссылки / теги /,
и друзья записывают более эффективно. Видеть
git-pack-refs [1].Этот файл игнорируется, если $ GIT_COMMON_DIR
установлен, и вместо него будет использоваться «$ GIT_COMMON_DIR / pack-refs».

ГОЛОВКА

Символьная ссылка (см. Глоссарий) к пространству имен refs / Heads /
описание текущей активной ветви. Это не означает
много, если репозиторий не связан ни с одним рабочим деревом
(то есть голый репозиторий ), но действующий репозиторий Git
должен иметь файл HEAD; некоторые фарфоры могут использовать его для
угадайте назначенную ветку репозитория «по умолчанию»
(обычно мастер ).Законно, если названная ветка
имя (пока) не существует. В некоторых устаревших установках это
символическая ссылка вместо символьной ссылки, которая указывает на текущий
ветка.

HEAD также может записывать конкретную фиксацию напрямую, а не
являясь символической ссылкой, указывающей на текущую ветку. Такое состояние
часто называют отдельной ГОЛОВКОЙ. См. Git-checkout [1]
для подробностей.

конфигурация

Файл конфигурации для конкретного репозитория. Этот файл игнорируется
если $ GIT_COMMON_DIR установлен и «$ GIT_COMMON_DIR / config» будет
вместо этого.

config.worktree

Конфигурационный файл рабочего каталога для основного
рабочий каталог в настройке нескольких рабочих каталогов (см.
git-worktree [1]).

филиалов

Немного устаревший способ хранения сокращений для использования
чтобы указать URL-адрес git fetch , git pull и git push .
Файл можно сохранить как веток / <имя> , а затем
имя может быть присвоено этим командам вместо
репозиторий аргумент.См. Раздел ПУЛЬТЫ в
git-fetch [1] для подробностей. Этот механизм унаследован
и вряд ли их можно найти в современных репозиториях. Этот
каталог игнорируется, если установлен $ GIT_COMMON_DIR и
Вместо этого будет использоваться «$ GIT_COMMON_DIR / branch».

крючки

Хуки — это скрипты настройки, используемые различными Git.
команды. Несколько крючков для образцов устанавливаются, когда
git init запущен, но все они отключены
По умолчанию. Для включения суффикс .sample должен быть
удален из имени файла путем переименования.Прочтите githooks [5], чтобы узнать больше о
каждый крючок. Этот каталог игнорируется, если установлен $ GIT_COMMON_DIR
и вместо этого будет использоваться «$ GIT_COMMON_DIR / hooks».

обыкновенный

При использовании нескольких рабочих деревьев большинство файлов в
$ GIT_DIR предназначены для каждого рабочего дерева с несколькими известными исключениями. Все
файлы под , общий , однако будут совместно использоваться всеми
рабочие деревья.

индекс

Текущий индексный файл для репозитория. это
обычно не встречается в голом репозитории.

sharedindex.

Часть общего индекса, на которую ссылаются $ GIT_DIR / index и
другие временные индексные файлы. Действует только в режиме разделенного индекса.

информация

Дополнительная информация о репозитории записана
в этом каталоге. Этот каталог игнорируется, если $ GIT_COMMON_DIR
установлен, и вместо него будет использоваться «$ GIT_COMMON_DIR / info».

информация / ссылки

Этот файл помогает тупому транспорту узнать, что такое реф.
доступны в этом репозитории.Если репозиторий
опубликован для немого транспорта, этот файл должен быть
восстанавливается git update-server-info каждый раз, когда тег
или ветка создана или изменена. Это обычно делается
из хуков / хуков обновления , которые запускаются
git-receive-pack команда, когда вы git нажимаете в
репозиторий.

инфо / графты

В этом файле записана информация о происхождении фальшивого коммита, чтобы
притвориться, что набор родителей у коммита другой
от того, как на самом деле был создан коммит.Одна запись
в каждой строке описывает фиксацию и ее поддельных родителей.
перечисление их 40-байтовых шестнадцатеричных имен объектов, разделенных
пробелом и завершается новой строкой.

Обратите внимание, что механизм трансплантата устарел и может привести к проблемам.
перенос объектов между репозиториями; см. git-replace [1]
для более гибкой и надежной системы, делающей то же самое.

информация / исключить

В этом файле, по традиции Фарфор, хранится
исключить список шаблонов. .gitignore — это каталог для каждого каталога
игнорировать файл. git status , git add , git rm и
git clean посмотрите на это, но основные команды Git не смотрят
на него. См. Также: gitignore [5].

информация / атрибуты

Определяет, какие атрибуты назначать пути, аналогично каталогу
.gitattributes файла. См. Также: gitattributes [5].

info / sparse-checkout

В этом файле хранятся разреженные шаблоны оформления заказа.См. Также: git-read-tree [1].

пульты

Сохраняет сокращения для URL и рефименов по умолчанию для использования
при взаимодействии с удаленными репозиториями через git fetch ,
Команды git pull и git push . См. Раздел ПУЛЬТЫ
в git-fetch [1] для подробностей. Этот механизм унаследован
и вряд ли их можно найти в современных репозиториях. Этот
каталог игнорируется, если установлен $ GIT_COMMON_DIR и
Вместо этого будет использоваться «$ GIT_COMMON_DIR / remotes».

бревна

В этом каталоге хранятся записи об изменениях, внесенных в ссылки.
См. Git-update-ref [1] для получения дополнительной информации. Этот
каталог игнорируется (кроме журналов / HEAD), если $ GIT_COMMON_DIR —
set и вместо него будет использоваться «$ GIT_COMMON_DIR / logs».

бревна / ссылки / главы / наименование

Записывает все изменения, внесенные в конец ветки с именем имя .

журналов / ссылок / тегов / имя

Записывает все изменения, внесенные в тег с именем name .

мелкое

Это похоже на info / grafts , но используется внутри страны.
и поддерживается механизмом мелкого клона. См. - глубина
вариант для git-clone [1] и git-fetch [1]. Этот
файл игнорируется, если установлен $ GIT_COMMON_DIR и
Вместо этого будет использоваться «$ GIT_COMMON_DIR / shallow».

обыкновенный

Если этот файл существует, $ GIT_COMMON_DIR (см. Git [1]) будет
быть установлен на путь, указанный в этом файле, если это не
явно установлен.Если указанный путь относительный, он
относительно $ GIT_DIR. Репозиторий с commondir есть
неполный без репозитория, указанного «commondir».

модуля

Содержит git-репозитории подмодулей.

рабочих дерева

Содержит административные данные для связанных
рабочие деревья. Каждый подкаталог содержит рабочее дерево, относящееся к
часть связанного рабочего дерева. Этот каталог игнорируется, если
$ GIT_COMMON_DIR установлен, и в этом случае
Вместо этого будет использоваться «$ GIT_COMMON_DIR / worktrees».

рабочих дерева / / gitdir

Текстовый файл, содержащий абсолютный путь к файлу .git.
что указывает сюда. Это используется для проверки наличия связанных
репозиторий удален вручную и нет необходимости
сохранить этот каталог больше. Время mtime этого файла должно быть
обновляется каждый раз при доступе к связанному репозиторию.

рабочих дерева / / заблокировано

Если этот файл существует, связанное рабочее дерево может находиться на
портативное устройство и недоступно.Наличие этого файла
предотвращает автоматическую обрезку рабочих деревьев /
или вручную с помощью git worktree prune . Файл может содержать строку
объясняя, почему репозиторий заблокирован.

рабочих дерева / /config.worktree

Файл конфигурации, относящийся к рабочему каталогу.

Git — документация gitignore

Файл gitignore определяет преднамеренно неотслеживаемые файлы, которые
Git должен игнорировать.Файлы, уже отслеживаемые Git, не затрагиваются; см. ПРИМЕЧАНИЯ
подробности ниже.

Каждая строка в файле gitignore определяет шаблон.
Решая, игнорировать ли путь, Git обычно проверяет
шаблонов gitignore из нескольких источников, со следующими
порядок приоритета, от высшего к низшему (в пределах одного уровня
приоритет, результат решает последний соответствующий шаблон):

  • Шаблоны, считываемые из командной строки для тех команд, которые поддерживают
    их.

  • Шаблоны читаются из файла .gitignore в том же каталоге
    в качестве пути или в любом родительском каталоге с шаблонами в
    файлы более высокого уровня (до верхнего уровня рабочего дерева) переопределяются
    теми, кто находится в файлах более низкого уровня, вплоть до каталога, содержащего файл.
    Эти шаблоны совпадают относительно расположения
    .gitignore файл. Обычно в проект входят такие
    .gitignore файлов в своем репозитории, содержащих шаблоны для
    файлы, созданные как часть сборки проекта.

  • Паттерны читаются из $ GIT_DIR / info / exclude .

  • Паттерны читаются из файла, указанного в конфигурации
    переменная core.excludesFile .

В какой файл поместить узор, зависит от того, для чего он предназначен.
использоваться.

  • Шаблоны, которые должны контролироваться по версиям и распространяться на
    другие репозитории через клон (т.е. файлы, которые понадобятся всем разработчикам)
    игнорировать) должен перейти в .gitignore файл.

  • Паттерны, которые
    специфичны для конкретного репозитория, но к которым не нужно делиться
    с другими связанными репозиториями (например, вспомогательными файлами, находящимися внутри
    репозиторий, но относятся к рабочему процессу одного пользователя) должны входить в
    файл $ GIT_DIR / info / exclude .

  • паттернов, которые пользователь хочет, чтобы Git
    игнорировать во всех ситуациях (например, резервные или временные файлы, созданные
    выбранный пользователем редактор) обычно переходят в файл, указанный
    ядро.excludesFile в пользовательском файле ~ / .gitconfig . Его значение по умолчанию —
    $ XDG_CONFIG_HOME / git / ignore. Если $ XDG_CONFIG_HOME либо не установлен, либо
    пусто, вместо него используется $ HOME / .config / git / ignore.

Базовые сантехнические инструменты Git, такие как
git ls-files и git read-tree , читать
gitignore шаблонов, заданных параметрами командной строки или из
файлы, указанные в параметрах командной строки. Git более высокого уровня
инструменты, такие как git status и git add ,
использовать шаблоны из указанных выше источников.

.gitignore файл — игнорирование файлов в Git

Git видит каждый файл в вашей рабочей копии как одно из трех:

  1. отслежено — файл, который ранее был поставлен или зафиксирован;
  2. неотслеживаемый — файл, который еще не поставил или зафиксировал; или
  3. ignored — файл, который Git явно должен игнорировать.

Игнорируемые файлы обычно представляют собой артефакты сборки и файлы, сгенерированные компьютером, которые могут быть получены из источника вашего репозитория или не должны фиксироваться иным образом.Вот некоторые общие примеры:

  • кэшей зависимостей, например, содержимое / node_modules или / packages
  • Скомпилированный код

  • , например .o , .pyc и .class , файлы выходных каталогов
  • сборки, такие как / bin , / out или / target
  • файлов, созданных во время выполнения, например .log , .lock или .tmp
  • скрытых системных файлов, таких как .DS_Store или Thumbs.db
  • личные файлы конфигурации IDE, такие как .idea / workspace.xml

Игнорируемые файлы отслеживаются в специальном файле с именем .gitignore , который регистрируется в корне вашего репозиторий. Нет явной команды git ignore: вместо этого файл .gitignore должен редактироваться и фиксироваться вручную, когда у вас есть новые файлы, которые вы хотите игнорировать. .gitignore Файлы содержат шаблоны, которые сопоставляются с именами файлов в вашем репозитории, чтобы определить, следует ли их игнорировать.

Шаблоны игнорирования Git

.gitignore использует шаблоны подстановки для сопоставления с именами файлов. Вы можете строить свои узоры, используя различные символы:

используется для соответствия любому символу, кроме одного из указанного набора.

Шаблон Примеры совпадений Пояснение *
** / журналы журналов / debug.log
журналов / понедельник / foo.bar debug.log
Вы можете добавить к шаблону двойную звездочку, чтобы он соответствовал каталогам в любом месте репозитория.
** / logs / debug.log logs / debug.log
build / logs / debug.log
, но не
logs / build / debug.log
Вы также можете использовать двойную звездочку для сопоставления файлов на основе их имени и имени их родительского каталога.
* .log debug.log
foo.log
.log
журналы / отладка.log
Звездочка - это подстановочный знак, который соответствует нулю или более символам.
* .log
! Important.log
debug.log
trace.log
, но не
important.log

003 logs / important.log

Добавление восклицательного знака к шаблону сводит его на нет. Если файл соответствует шаблону, но также соответствует шаблону отрицания, определенному позже в файле, он не будет проигнорирован.

* .log
! Important / *. Log
trace. *
debug.log
important / trace.log
, но не
important / debug. log
Шаблоны, определенные после шаблона отрицания, будут повторно игнорировать любые ранее отвергнутые файлы.
/debug.log debug.log
, но не
журналы / отладка.log
Добавление косой черты соответствует файлам только в корне репозитория.
debug.log debug.log
logs / debug.log
По умолчанию шаблоны соответствуют файлам в любом каталоге
debug? .Log

4

log
debugg.log
, но не
debug10.log
Знак вопроса соответствует ровно одному символу.
debug [0-9] .log debug0.log
debug1.log
, но не
debug10.log
Квадратные скобки также могут использоваться для сопоставления одиночных символ из указанного диапазона.
debug [01] .log debug0.log
debug1.log
, но не
debug2.log
debug01.log
Квадратные скобки соответствуют одиночному символу из указанного набора.
debug [! 01] .log debug2.log
но не
debug0.log
debug1.log
debug01.log
debug [a-z] .log debuga.log
debugb.log
, но не
debug1.log
Диапазоны могут быть числовыми или буквенными.
журналов журналов
журналов / debug.log
журналов / latest / foo.bar
build / logs
build / logs / debug.log 6 не добавляйте косую черту, шаблон будет соответствовать как файлам, так и содержимому каталогов с этим именем.В примере совпадений слева игнорируются как каталоги, так и файлы с именами logs
logs / logs / debug.log
logs / latest / foo.bar
build / logs / foo .bar
build / logs / latest / debug.log
Добавление косой черты означает, что шаблон является каталогом. Все содержимое любого каталога в репозитории, соответствующего этому имени, включая все его файлы и подкаталоги, будет проигнорировано.
logs /
! Logs / important.log
logs / debug.log
logs / important.log
Погодите! Не следует указывать значение logs / important.log в примере слева.

Нет! Из-за причуды, связанной с производительностью в Git, не может отрицать файл, который игнорируется из-за соответствия шаблона каталогу

logs / ** / debug.log logs / debug. журнал
журналы / понедельник / отладка.log
logs / monday / pm / debug.log
Двойная звездочка соответствует нулю или более каталогам.
журналов / * день / debug.log журналов / понедельник / debug.log
журналов / вторник / debug.log
, но не
журналов / последний / debug.log
Подстановочные знаки также можно использовать в именах каталогов.
журналов / debug.log журналов / отладки.log
, но не
debug.log
build / logs / debug.log
Шаблоны, определяющие файл в определенном каталоге, относятся к корню репозитория. (Вы можете добавить косую черту, если хотите, но это не делает ничего особенного.)

** эти объяснения предполагают, что ваш файл .gitignore находится в каталоге верхнего уровня вашего репозитория, как это принято. Если в вашем репозитории несколько файлов .gitignore, просто мысленно замените «корень репозитория» на «каталог, содержащий файлы.gitignore file "(и подумайте об их объединении для здравомыслия вашей команды). *

В дополнение к этим символам вы можете использовать # для включения комментариев в ваш файл .gitignore :

  # игнорировать все логи * .log  

Вы можете использовать \ для экранирования .gitignore символов шаблона, если у вас есть файлы или каталоги, содержащие их:

  # игнорировать файл с буквальным именем foo [01] .txt foo \ [01 \]. Txt  

Общие файлы .gitignore в вашем репозитории

Правила игнорирования Git обычно определены в .gitignore в корне вашего репозитория. Однако вы можете определить несколько файлов .gitignore в разных каталогах вашего репозитория. Каждый шаблон в конкретном файле .gitignore проверяется относительно каталога, содержащего этот файл. Однако соглашение и самый простой подход - определить один файл .gitignore в корне. Поскольку ваш файл .gitignore зарегистрирован, он версируется, как и любой другой файл в вашем репозитории, и передается вашим товарищам по команде, когда вы нажимаете.Обычно вы должны включать только шаблоны в .gitignore , которые принесут пользу другим пользователям репозитория.

Персональные правила игнорирования Git

Вы также можете определить персональные шаблоны игнорирования для конкретного репозитория в специальном файле по адресу .git / info / exclude . Они не версируются и не распространяются с вашим репозиторием, поэтому это подходящее место для включения шаблонов, которые, вероятно, принесут вам только пользу. Например, если у вас есть настраиваемая настройка ведения журнала или специальные инструменты разработки, которые создают файлы в рабочем каталоге вашего репозитория, вы можете рассмотреть возможность добавления их в .git / info / exclude , чтобы предотвратить их случайную фиксацию в вашем репозитории.

Глобальные правила игнорирования Git

Кроме того, вы можете определить глобальные шаблоны игнорирования Git для всех репозиториев в вашей локальной системе, установив свойство Git core.excludesFile . Вам придется создать этот файл самостоятельно. Если вы не знаете, где разместить глобальный файл .gitignore , ваш домашний каталог - неплохой выбор (и его будет легко найти позже). После того, как вы создали файл, вам необходимо настроить его местоположение с помощью git config :

  $ touch ~ /.gitignore $ git config --global core.excludesFile ~ / .gitignore  

Вы должны быть осторожны с тем, какие шаблоны вы выбираете для глобального игнорирования, поскольку разные типы файлов актуальны для разных проектов. Специальные файлы операционной системы (например, .DS_Store и thumbs.db ) или временные файлы, созданные некоторыми инструментами разработчика, являются типичными кандидатами для глобального игнорирования.

Игнорирование ранее зафиксированного файла

Если вы хотите игнорировать файл, который вы зафиксировали в прошлом, вам нужно удалить файл из своего репозитория, а затем добавить .Правило gitignore для этого. Использование опции --cached с git rm означает, что файл будет удален из вашего репозитория, но останется в вашем рабочем каталоге как игнорируемый файл.

  $ echo debug.log >> .gitignore $ git rm --cached debug.log rm 'debug.log' $ git commit -m «Начать игнорирование debug.log»  

Вы можете опустить опцию --cached , если хотите удалить файл как из репозитория, так и из локальной файловой системы.

Подтверждение игнорируемого файла

Можно принудительно зафиксировать игнорируемый файл в репозитории, используя параметр -f (или --force ) с git add :

  $ cat .gitignore * .log $ git add -f debug.log $ git commit -m "Принудительное добавление debug.log"  

Вы можете подумать о том, чтобы сделать это, если у вас есть общий шаблон (например, * .log ), но вы хотите зафиксировать конкретный файл. Однако лучшим решением будет определение исключения из общего правила:

  $ echo! Debug.log >> .gitignore $ cat .gitignore * .log! debug.log $ git add debug.log $ git commit -m "Добавление debug.log"  

Этот подход более очевиден и менее запутан для ваших товарищей по команде.

Хранение проигнорированного файла

git stash - мощная функция Git для временного откладывания и отмены локальных изменений, позволяющая повторно применить их позже. Как и следовало ожидать, по умолчанию git stash игнорирует игнорируемые файлы и сохраняет изменения только в тех файлах, которые отслеживаются Git.Однако вы можете вызвать git stash с параметром --all, чтобы сохранить изменения в игнорируемых и неотслеживаемых файлах.

Отладка файлов .gitignore

Если у вас есть сложные шаблоны .gitignore или шаблоны, распределенные по нескольким файлам .gitignore , может быть сложно отследить, почему игнорируется конкретный файл. Вы можете использовать команду git check-ignore с параметром -v (или --verbose ), чтобы определить, какой шаблон вызывает игнорирование конкретного файла:

  $ git check-ignore -v debug.журнал .gitignore: 3: *. журнал debug.log  

Вывод показывает:

 ::  

Вы можете передать несколько имен файлов в git check-ignore , если хотите, и сами имена даже не обязательно должны соответствовать файлам, которые существуют в вашем репозитории.

github / gitignore: набор полезных шаблонов .gitignore

Это коллекция GitHub из шаблонов файлов .gitignore .
Мы используем этот список для заполнения доступных средств выбора шаблона .gitignore
в GitHub.com при создании новых репозиториев и файлов.

Для получения дополнительной информации о том, как работают файлы .gitignore и как их использовать,
следующие ресурсы - отличное место для начала:

Структура папки

Мы поддерживаем набор шаблонов, организованных следующим образом:

  • корневая папка содержит шаблоны, которые обычно используются, чтобы помочь людям начать работу
    с популярными языками программирования и технологиями. Они определяют значимое
    набор правил, которые помогут начать работу и убедитесь, что вы не совершаете
    неважные файлы в репозиторий
  • Global содержит шаблоны для различных редакторов, инструментов и
    операционные системы, которые можно использовать в разных ситуациях.Рекомендуется
    что вы либо добавляете их в свой глобальный шаблон
    или объедините эти правила в шаблоны для конкретного проекта, если хотите использовать
    их навсегда.
  • Сообщество содержит специализированные шаблоны для других популярных
    языки, инструменты и проекты, которые в настоящее время не относятся к мейнстриму
    шаблоны. Их следует добавить в шаблоны для конкретного проекта, когда вы
    принять решение о применении структуры или инструмента.

Что делает хороший шаблон?

Шаблон должен содержать набор правил, помогающих репозиториям Git работать с
конкретный язык программирования, фреймворк, инструмент или среда.

Если невозможно разработать небольшой набор полезных правил для этой ситуации,
то шаблон не подходит для этой коллекции.

Если шаблон в основном представляет собой список файлов, установленных определенной версией
какое-то программное обеспечение (например, PHP-фреймворк), оно могло бы жить в сообществе
каталог. См. Более подробную информацию в версионных шаблонах.

Если у вас небольшой набор правил или вы хотите поддержать технологию,
широко используется, и вы все еще уверены, что это будет полезно для других, пожалуйста, прочтите
раздел о специализированных шаблонах для более подробной информации.

Включите подробные сведения при открытии запроса на вытягивание, если шаблон важен и виден. Мы
может не принять его сразу, но мы можем продвинуть его в корень позже
на основе интереса.

Пожалуйста, поймите также, что мы не можем перечислить все инструменты, которые когда-либо существовали.
Наша цель - создать коллекцию из наиболее распространенных и полезных шаблонов ,
не для того, чтобы убедиться, что мы охватываем все возможные проекты. Если мы решим не
укажите свой язык, инструмент или проект, это не потому, что это не так.

Правила участия

Мы будем рады, если вы поможете нам улучшить этот проект. Чтобы помочь нам сохранить эту коллекцию
высокое качество, мы просим, ​​чтобы материалы соответствовали следующим правилам.

  • Укажите ссылку на домашнюю страницу приложения или проекта . Если это не
    чрезвычайно популярны, есть вероятность, что разработчики не знают или не используют
    язык, фреймворк, редактор, приложение или проект, к которому относится ваше изменение.

  • Предоставьте ссылки на документацию , поддерживающую вносимые вами изменения.Лучше всего использовать текущую каноническую документацию, в которой упоминаются игнорируемые файлы.
    Если документация, подтверждающая ваше изменение, недоступна, сделайте все, что в ваших силах.
    чтобы объяснить, для чего нужны игнорируемые файлы.

  • Объясните, почему вы вносите изменения . Даже если это кажется само собой разумеющимся, пожалуйста
    возьмите пару предложений, чтобы рассказать нам, почему должно произойти ваше изменение или добавление.
    Особенно полезно объяснить, почему это изменение применяется к каждому
    кто работает с применимой технологией, а не только вы или ваша команда.

  • Пожалуйста, примите во внимание объем вашего изменения . Если ваше изменение относится к
    определенный язык или фреймворк, затем убедитесь, что изменение внесено в
    шаблон для этого языка или структуры, а не шаблон для
    редактор, инструмент или операционная система.

  • Пожалуйста, изменяйте только один шаблон на запрос на вытягивание . Это помогает удерживать тягу
    запросы и отзывы, посвященные конкретному проекту или технологии.

В целом, чем больше вы можете сделать, чтобы помочь нам понять вносимые вами изменения,
тем более вероятно, что мы быстро примем ваш вклад.

Шаблоны с поддержкой версий

Некоторые шаблоны могут сильно меняться от версии к версии, и если вы хотите внести свой вклад
в этот репозиторий нам нужно следовать этому конкретному потоку:

  • шаблон в корне должен иметь текущую поддерживаемую версию
  • шаблон в корне не должен иметь версию в имени файла (т. Е.
    «вечнозеленый»)
  • предыдущие версии шаблонов должны находиться в сообществе /
  • предыдущие версии шаблона должны включать версию в имя файла,
    для удобочитаемости

Это помогает гарантировать, что пользователи получат последнюю версию (потому что они будут использовать то, что
в корне), но помогает разработчикам поддерживать более старые версии, которые еще не используются.

Специализированные шаблоны

Если у вас есть шаблон, который вы хотели бы внести, но он не совсем
мейнстрим, рассмотрите возможность добавления этого в каталог
сообщества под
папка, которая лучше всего подходит тому месту, где она находится.

Правила в вашем специализированном шаблоне должны соответствовать фреймворку или
инструмент, а любые дополнительные шаблоны следует упомянуть в комментарии в
заголовок шаблона.

Например, этот шаблон может находиться в сообществе / DotNet / InforCRM.gitignore :

  # шаблон gitignore для InforCRM (ранее SalesLogix)
# сайт: https://www.infor.com/product-summary/cx/infor-crm/
#
# Рекомендуется: VisualStudio.gitignore

# Игнорировать файлы модели, которые создаются автоматически
ModelIndex.xml
ExportedFiles.xml

# Игнорировать файлы развертывания
[Mm] odel / [Dd] eployment

# Принудительно включить файлы поддержки портала
! Модель / Портал / * / SupportFiles / [Bb] в /
! Модель / Портал / Шаблоны портала / * / SupportFiles / [Bb] в
  

Рабочий процесс

Вот как мы предлагаем вам внести изменения в этот проект:

  1. Подключите этот проект к своей учетной записи.
  2. Создайте ветку для изменения, которое вы собираетесь внести.
  3. Внесите изменения в вилку.
  4. Отправьте запрос на вытягивание из ветви вашей вилки в нашу ветку master .

Использование веб-интерфейса для внесения изменений тоже нормально и поможет вам
путем автоматического разветвления проекта и запроса на отправку запроса на перенос.

Лицензия

CC0-1.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *