Это команда git-update-index, которую можно запустить в провайдере бесплатного хостинга OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
git-update-index - регистрирует содержимое файла в рабочем дереве в индексе
СИНТАКСИС
мерзавец индекс обновления
[--добавить] [--удалить | --force-remove] [--replace]
[--обновить] [-q] [--не объединено] [--игнорировать-отсутствует]
[(--cacheinfo , , ) ...]
[--chmod = (+ | -) x]
[- [нет-] предполагать без изменений]
[- [no-] skip-worktree]
[--игнорировать-подмодули]
[- [no-] split-index]
[- [no- | force-] не отслеживаемый-кеш]
[--really-refresh] [--unresolve] [--again | -грамм]
[--информация-только] [--индекс-информация]
[-z] [--stdin] [--index-версия ]
[--подробный]
[-] [ ...]
ОПИСАНИЕ
Изменяет кеш индекса или каталога. Каждый упомянутый файл обновляется в индексе и
любой не объединенный or потребности обновление состояние очищено.
Смотрите также git-добавить(1) для более удобного способа выполнения некоторых из наиболее распространенных операций.
по индексу.
Путь мерзавец индекс обновления обрабатывает файлы, о которых говорится, могут быть изменены с помощью различных
опции:
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
--Добавить
Если указанного файла еще нет в индексе, он добавляется. Поведение по умолчанию
игнорировать новые файлы.
--Удалить
Если указанный файл есть в индексе, но отсутствует, он удаляется. Поведение по умолчанию
игнорировать удаленный файл.
- обновить
Просматривает текущий индекс и проверяет, нужны ли слияния или обновления для
проверка информации stat ().
-q
Тихий. Если --refresh обнаруживает, что индекс нуждается в обновлении, поведение по умолчанию -
ошибка. Эта опция делает мерзавец индекс обновления продолжить в любом случае.
--игнорировать-подмодули
Не пытайтесь обновить подмодули. Эта опция соблюдается, только если она передана раньше.
- обновить.
- не слился
Если --refresh находит не объединенные изменения в индексе, поведение по умолчанию - ошибка.
из. Эта опция делает мерзавец индекс обновления продолжить в любом случае.
--игнорировать-отсутствует
Игнорирует отсутствующие файлы во время --refresh
--cacheinfo , , , --cacheinfo
Непосредственно вставьте указанную информацию в индекс. Для обратной совместимости вы можете
также передайте эти три аргумента как три отдельных параметра, но новые пользователи
рекомендуется использовать однопараметрическую форму.
--index-информация
Прочитать индексную информацию из stdin.
--chmod = (+ | -) х
Установите разрешения на выполнение для обновленных файлов.
- [нет-] предполагать без изменений
Когда этот флаг указан, имена объектов, записанные для путей, не обновляются.
Вместо этого эта опция устанавливает / снимает бит «считать неизменным» для путей. Когда
бит "считать неизменным" включен, пользователь обещает не изменять файл и разрешает Git
предположить, что файл рабочего дерева соответствует тому, что записано в индексе. если ты
хотите изменить файл рабочего дерева, вам нужно сбросить бит, чтобы сообщить Git. Это
иногда полезно при работе с большим проектом в файловой системе, которая работает очень медленно.
lstat(2) системный вызов (например, cifs).
Git завершится ошибкой (изящно), если ему потребуется изменить этот файл в индексе, например, когда
слияние в коммите; таким образом, в случае изменения предполагаемого неотслеживаемого файла вверх по течению, вы
нужно будет обрабатывать ситуацию вручную.
- действительно обновить
Подобно - обновить, но проверяет статистическую информацию безоговорочно, независимо от
"предполагать неизменным" настройку.
- [no-] skip-worktree
Когда указан один из этих флагов, имя объекта, записанное для путей, не
обновлено. Вместо этого эти параметры устанавливают и снимают бит «skip-worktree» для путей.
См. Раздел «Бит пропуска рабочего дерева» ниже для получения дополнительной информации.
-g, - снова
Работает мерзавец индекс обновления себя на путях, индексные записи которых отличаются от тех
из коммита HEAD.
--неразрешить
Восстанавливает не объединенный or потребности обновление состояние файла во время слияния, если он был
очищен случайно.
--информация только
Не создавайте объекты в базе данных для всех аргументы, которые следуют за этим
флаг; просто вставьте их идентификаторы объектов в индекс.
--force-remove
Удалите файл из индекса, даже если в рабочем каталоге все еще есть такой файл.
(Подразумевается - удалить.)
--заменять
По умолчанию, если в индексе существует путь к файлу, мерзавец индекс обновления отказывается от попытки
добавить путь / файл. Точно так же, если путь к файлу / файлу существует, путь к файлу не может быть добавлен.
С флагом --replace существующие записи, которые конфликтуют с добавляемой записью,
автоматически удаляется с предупреждениями.
--стдин
Вместо того, чтобы брать список путей из командной строки, прочтите список путей из
стандартный ввод. По умолчанию пути разделяются LF (т.е. по одному пути на строку).
--подробный
Сообщите, что добавляется и удаляется из индекса.
--index-версия
Запишите полученный индекс в названной версии формата на диске. Поддерживаемые версии
2, 3 и 4. Текущая версия по умолчанию - 2 или 3, в зависимости от того, есть ли дополнительные
используются такие функции, как git add -N.
Версия 4 выполняет простое сжатие имени пути, которое уменьшает размер индекса на 30% -50% на
большие репозитории, что сокращает время загрузки. Версия 4 относительно молода
(впервые выпущен в версии 1.8.0 в октябре 2012 года). Другие реализации Git, такие как JGit
и libgit2 может еще не поддерживать его.
-z
Имеет смысл только с --stdin или --index-info; пути разделяются символом NUL
вместо LF.
--split-индекс, --no-split-индекс
Включение или отключение режима разделенного индекса. Если включено, индекс разбивается на два файла,
$ GIT_DIR / index и $ GIT_DIR / sharedindex. . Изменения накапливаются в
$ GIT_DIR / index, в то время как файл общего индекса содержит все записи индекса, остается без изменений.
Если режим разделенного индекса уже включен и снова задан --split-index, все изменения
в $ GIT_DIR / index возвращаются в общий индексный файл. Этот режим предназначен для
очень большие индексы, для чтения или записи которых требуется много времени.
--untracked-cache, --no-untracked-cache
Включение или отключение неотслеживаемого расширения кеша. Это может ускорить выполнение команд,
включают определение неотслеживаемых файлов, таких как git status. Основные операционные
система и файловая система должны изменить поле st_mtime каталога, если файлы добавляются или
удален в этом каталоге.
--force-untracked-cache
В целях безопасности --untracked-cache выполняет тесты в рабочем каталоге, чтобы убедиться, что
можно использовать неотслеживаемый кеш. Эти тесты могут занять несколько секунд.
--force-untracked-cache можно использовать для пропуска тестов.
--
Не интерпретируйте никакие аргументы как варианты.
Файлы, над которыми нужно действовать. Обратите внимание, что файлы, начинающиеся с . отбрасываются. Это включает ./file
и каталог /./ файл. Если вы этого не хотите, используйте более чистые имена. То же самое относится к
каталоги заканчиваются / и пути с //
С ПОМОЩЬЮ --ОБНОВИТЬ
- обновить не вычисляет новый файл sha1 и не обновляет индекс для
изменения режима / содержания. Но что это приносит do - это "повторное сопоставление" статистической информации файла
с индексом, чтобы вы могли обновить индекс для файла, который не был изменен, но
где запись в статистике устарела.
Например, вы захотите сделать это после выполнения мерзавец дерево чтения, чтобы связать индекс статистики
детали с соответствующими файлами.
С ПОМОЩЬЮ --CACHEINFO OR - ТОЛЬКО ИНФО
--cacheinfo используется для регистрации файла, которого нет в текущем рабочем каталоге. Этот
полезен для слияния с минимальной оплатой.
Чтобы представить, что у вас есть файл с режимом и sha1 в пути, скажите:
$ git update-index --cacheinfo , ,
--информация только используется для регистрации файлов без помещения их в базу данных объектов. Это
полезно для репозиториев только со статусом.
Оба формата --cacheinfo и --информация только ведут себя аналогично: индекс обновляется, но объект
база данных нет. --cacheinfo полезно, когда объект находится в базе данных, но файл
не доступен локально. --информация только полезно, когда файл доступен, но вы не
хотите обновить базу данных объектов.
С ПОМОЩЬЮ --ИНДЕКС-ИНФОРМАЦИЯ
--index-info - более мощный механизм, позволяющий вводить несколько определений записей.
из стандартного ввода и разработан специально для скриптов. Он может принимать входные данные
три формата:
1. режим SP sha1 TAB path
Первый формат - это то, что сообщает "git-apply --index-info", и он используется для восстановления
частичное дерево, которое используется для базового дерева фиктивного слияния при возврате к 3-стороннему слиянию.
2. режим SP типа SP sha1 TAB path
Второй формат - набить мерзавец ls-дерево вывод в индексный файл.
3. режим SP sha1 SP этап TAB путь
Этот формат предназначен для помещения этапов более высокого порядка в индексный файл и соответствует мерзавец ls-файлы
--сцена вывод.
Чтобы поместить в индекс запись более высокого уровня, сначала нужно удалить путь, загрузив
mode = 0 запись для пути, а затем подача необходимых входных строк в третьем формате.
Например, начиная с этого индекса:
$ git ls-файлы -s
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 0 frotz
вы можете передать следующий ввод в --index-info:
$ git update-index --index-информация
0 0000000000000000000000000000000000000000 Frotz
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1 frotz
100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2 frotz
В первой строке ввода указывается 0 как режим удаления пути; SHA-1 не
важно, если он хорошо отформатирован. Затем вторая и третья строки передают этап 1 и
записи этапа 2 для этого пути. После вышеизложенного мы получим следующее:
$ git ls-файлы -s
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1 frotz
100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2 frotz
С ПОМОЩЬЮ "ПРЕДПОЛАГАТЬ НЕ ИЗМЕНЕНО » BIT
Многие операции в Git зависят от вашей файловой системы, чтобы иметь эффективную lstat(2)
реализация, так что информация st_mtime для рабочих файлов дерева может быть дешево проверена
чтобы увидеть, изменилось ли содержимое файла по сравнению с версией, записанной в индексном файле.
К сожалению, некоторые файловые системы неэффективны. lstat(2). Если ваша файловая система является одной из
их, вы можете установить бит "считать неизменным" для путей, которые вы не изменили, чтобы Git не
сделай эту проверку. Обратите внимание, что установка этого бита в пути не означает, что Git будет проверять
содержимое файла, чтобы увидеть, не изменилось ли оно - это заставляет Git пропускать любые проверки и
предположить, что у него есть измененный. Когда вы вносите изменения в файлы рабочего дерева, вы должны
явным образом сообщите об этом Git, сбросив бит «считать неизменным» до или после
вы их изменяете.
Чтобы установить бит «считать неизменным», используйте параметр --assume-unchanged. Чтобы отключить, используйте
- не предполагать без изменений. Чтобы узнать, в каких файлах установлен бит "считать неизменным", используйте git
ls-files -v (см. git-ls-файлы(1 г.)).
Команда просматривает конфигурационную переменную core.ignorestat. Когда это правда, пути
обновлены путями git update-index ... и пути обновлены другими командами Git, которые
обновить как индекс, так и рабочее дерево (например, мерзавец подать заявление --показатель, мерзавец кассовый индекс -uи мерзавец
дерево чтения -u) автоматически помечаются как «предполагать без изменений». Обратите внимание, что "предполагать без изменений"
немного установить, если git update-index --refresh обнаруживает, что файл рабочего дерева соответствует индексу
(используйте git update-index --really-refresh, если вы хотите пометить их как «предполагаемые без изменений»).
ПРИМЕРЫ
Чтобы обновить и обновить только уже извлеченные файлы:
$ git checkout-index -n -f -a && git update-index --ignore-missing --refresh
В неэффективной файловой системе с установленным core.ignorestat
$ git update-index - действительно обновить (1)
$ git update-index --no-accept-unchanged foo.c (2)
$ git diff - только имя (3)
$ редактировать foo.c
$ git diff - только имя (4)
М foo.c
$ git индекс обновления foo.c (5)
$ git diff - только имя (6)
$ редактировать foo.c
$ git diff - только имя (7)
$ git update-index --no-accept-unchanged foo.c (8)
$ git diff - только имя (9)
М foo.c
1. сил lstat(2) для установки битов «считать неизменными» для путей, соответствующих индексу.
2. отметьте путь для редактирования.
3. это делает lstat(2) и находит индекс, соответствующий пути.
4. это делает lstat(2) и находит индекс соответствовать пути.
5. регистрация новой версии в индексе устанавливает бит «считать неизменным».
6. и предполагается без изменений.
7. даже после того, как вы его отредактируете.
8. Вы можете сказать об изменении постфактум.
9. теперь он проверяет lstat(2) и обнаруживает, что он был изменен.
СКИП-РАБОЧЕЕ ДЕРЕВО BIT
Бит Skip-worktree может быть определен одним (длинным) предложением: при чтении записи, если она
помечен как skip-worktree, то Git притворяется, что его версия рабочего каталога актуальна и
вместо этого прочтите индексную версию.
Чтобы уточнить, "чтение" означает проверку существования файла, чтение атрибутов файла или файла.
содержание. Версия рабочего каталога может присутствовать или отсутствовать. Если присутствует, его содержание
может совпадать с версией индекса или нет. Этот бит не влияет на запись, содержание
безопасность по-прежнему остается на первом месте. Обратите внимание, что Git обновить файл рабочего каталога, то есть
помечены skip-worktree, если это безопасно (т. е. версия рабочего каталога соответствует index
версия)
Хотя этот бит похож на бит без изменений, его цель отличается от
предполагать-неизмененные биты. Пропуск-рабочее дерево также имеет приоритет над битом предположения без изменений, когда
оба установлены.
КОНФИГУРАЦИЯ
Команда учитывает переменную конфигурации core.filemode. Если ваш репозиторий находится на
файловая система, исполняемые биты которой ненадежны, следует установить значение ложный (См. мерзавец
конфиг(1)). Это заставляет команду игнорировать различия в режимах файлов, записанных в
index и режим файла в файловой системе, если они отличаются только исполняемым битом. На такие
неудачная файловая система, вам может потребоваться использовать мерзавец индекс обновления --chmod =.
Точно так же, если для переменной конфигурации core.symlinks задано значение ложный (См. мерзавец
конфиг(1)), символические ссылки извлекаются как простые файлы, и эта команда не
изменить режим записанного файла с символической ссылки на обычный файл.
Команда просматривает конфигурационную переменную core.ignorestat. Видеть . "предполагать без изменений "
бит раздел выше.
Команда также просматривает переменную конфигурации core.trustctime. Это может быть полезно, когда
время изменения inode регулярно изменяется чем-то вне Git (сканеры файловой системы
и системы резервного копирования используют ctime для пометки файлов как обработанных) (см. git-конфигурация(1 г.)).
Используйте git-update-index онлайн с помощью сервисов onworks.net