Це команда git-update-index, яку можна запустити в безкоштовному хостинг-провайдері OnWorks за допомогою однієї з наших безкоштовних онлайн-робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS
ПРОГРАМА:
ІМ'Я
git-update-index - реєструє вміст файлу в робочому дереві в індексі
СИНТАКСИС
мерзотник оновлення-індексу
[--додати] [--видалити | --force-remove] [--replace]
[--refresh] [-q] [--unmerged] [--ignore-missing]
[(--cacheinfo , , )...]
[--chmod=(+|-)x]
[--[ні-]припустити-без змін]
[--[no-]skip-worktree]
[--ignore-submodules]
[--[no-]split-index]
[--[no-|force-]untracked-cache]
[--really-refresh] [--unresolve] [--again | -g]
[--info-only] [--index-info]
[-z] [--stdin] [--index-version ]
[--дослівно]
[--] [ ...]
ОПИС
Змінює кеш індексу або каталогу. Кожен згаданий файл оновлюється в індекс і
будь-який незлиті or потреби оновлення стан очищається.
Дивіться також git-додати(1) для більш зручного способу виконання деяких найпоширеніших операцій
на покажчику.
Шлях мерзотник оновлення-індексу обробляє файли, про які йдеться, можна змінювати за допомогою різних
опції:
ВАРІАНТИ
--додати
Якщо вказаного файлу ще немає в індексі, він додається. Поведінка за замовчуванням
щоб ігнорувати нові файли.
-видалити
Якщо вказаний файл є в індексі, але його немає, він видаляється. Поведінка за замовчуванням
ігнорувати видалений файл.
--оновити
Переглядає поточний індекс і перевіряє, чи потрібні злиття або оновлення
перевірка інформації stat().
-q
Спокійно. Якщо --refresh виявляє, що індекс потребує оновлення, типовою поведінкою є
помилка. Цей варіант робить мерзотник оновлення-індексу все одно продовжити.
--ignore-submodules
Не намагайтеся оновити підмодулі. Цей параметр враховується лише тоді, коли його було прийнято раніше
--оновити.
--необ'єднаний
Якщо --refresh знаходить необ’єднані зміни в індексі, типовою поведінкою буде помилка
поза. Цей варіант робить мерзотник оновлення-індексу все одно продовжити.
--ігнорувати-відсутня
Ігнорує відсутні файли під час --refresh
--cacheinfo , , , --cacheinfo
Безпосередньо вставте вказану інформацію в індекс. Для зворотної сумісності ви можете
також надайте ці три аргументи як три окремі параметри, але нові користувачі є
рекомендується використовувати форму з одним параметром.
--index-info
Читання інформації про індекс із stdin.
--chmod=(+|-)x
Установіть дозволи на виконання оновлених файлів.
--[no-]acsum-unchanged
Якщо вказано цей прапорець, імена об’єктів, записані для шляхів, не оновлюються.
Натомість цей параметр встановлює/скасовує біт «вважати незмінним» для шляхів. Коли
біт «припустити незмінений» увімкнено, користувач обіцяє не змінювати файл і дозволяє Git
припустити, що робочий файл дерева відповідає тому, що записане в індексі. Якщо ви
хочете змінити робочий файл дерева, вам потрібно скинути біт, щоб повідомити Git. Це
іноді корисно під час роботи з великим проектом у файловій системі, яка працює дуже повільно
lstat(2) системний виклик (наприклад, cifs).
Git вийде з ладу (витончено), якщо йому потрібно змінити цей файл в індексі, наприклад, коли
злиття в коміт; таким чином, у випадку, якщо передбачуваний невідстежуваний файл змінюється вгору, ви
доведеться вирішувати ситуацію вручну.
--справді-оновити
Люблю --оновити, але перевіряє статистичну інформацію беззастережно, незалежно від
налаштування "вважати незмінними".
--[no-]skip-worktree
Якщо вказано один із цих прапорів, ім’я об’єкта, записане для шляхів, не є
оновлено. Натомість ці параметри встановлюють і вимикають біт "skip-worktree" для шляхів.
Додаткову інформацію див. у розділі «Пропустити біт робочого дерева» нижче.
-g, --знову
Runs мерзотник оновлення-індексу на шляхах, записи індексів яких відрізняються від тих
від коміту HEAD.
--нерозв'язати
Відновлює незлиті or потреби оновлення стан файлу під час злиття, якщо він був
очищено випадково.
--лише інформація
Не створюйте об’єкти в базі даних об’єктів для всіх аргументи, які слідують за цим
прапор; просто вставте їхні ідентифікатори об’єктів в індекс.
--примусово видалити
Видаліть файл з індексу, навіть якщо в робочому каталозі ще є такий файл.
(Мається на увазі -- видалити.)
--замінити
За замовчуванням, коли в індексі існує шлях до файлу, мерзотник оновлення-індексу відмовляється від спроби
щоб додати шлях/файл. Так само, якщо шлях до файлу/файл існує, шлях до файлу не можна додати.
З прапорцем --replace наявні записи, які конфліктують із доданим записом, є
автоматично видаляється з попередженнями.
--stdin
Замість того, щоб брати список шляхів з командного рядка, прочитайте список шляхів з
стандартний вхід. За замовчуванням шляхи розділені LF (тобто один шлях на рядок).
-багатослівний
Повідомити про те, що додається та видаляється з індексу.
--індексна версія
Випишіть отриманий індекс у вказаній версії формату на диску. Підтримувані версії
це 2, 3 і 4. Поточна версія за замовчуванням 2 або 3, залежно від того, чи додаткова
використовуються такі функції, як git add -N.
Версія 4 виконує просте стиснення шляху, що зменшує розмір індексу на 30%-50% на
великі сховища, що призводить до швидшого часу завантаження. Версія 4 відносно молода
(вперше випущено у версії 1.8.0 у жовтні 2012 року). Інші реалізації Git, такі як JGit
і libgit2 може ще не підтримувати його.
-z
Має значення лише з --stdin або --index-info; шляхи розділені символом NUL
замість НЧ.
--split-index, --no-split-index
Увімкнути або вимкнути режим розділеного індексу. Якщо ввімкнено, індекс розбивається на два файли,
$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 можна використовувати для пропуску тестів.
--
Більше не інтерпретуйте аргументи як варіанти.
Файли, з якими потрібно діяти. Зауважте, що файли, які починаються з . відкидаються. Це включає ./файл
і dir/./file. Якщо ви цього не хочете, використовуйте чистіші імена. Те саме стосується
закінчення довідників / і стежки с //
ВИКОРИСТАННЯ --ОНОВИТИ
--оновити не обчислює новий файл sha1 або не оновлює індекс для
зміни режиму/змісту. Але що це робить do означає "повторно зіставити" статистичну інформацію файлу
з індексом, щоб ви могли оновити індекс для файлу, який не було змінено, але
де запис статистики застарів.
Наприклад, ви захочете зробити це після виконання a мерзотник дерево читання, щоб зв’язати індекс статистики
деталі з відповідними файлами.
ВИКОРИСТАННЯ --CACHEINFO OR --ЛИШЕ ІНФОРМАЦІЯ
--cacheinfo використовується для реєстрації файлу, якого немає в поточному робочому каталозі. Це
корисно для об’єднання мінімальних кас.
Щоб удати, що у вас є файл із режимом і sha1 у шляху, скажіть:
$ git update-index --cacheinfo , ,
--лише інформація використовується для реєстрації файлів без розміщення їх у базі даних об’єктів. Це
корисно для репозиторіїв лише зі статусом.
обидві --cacheinfo та --лише інформація поводиться аналогічно: індекс оновлюється, але об’єкт
база даних не є. --cacheinfo корисно, коли об'єкт знаходиться в базі даних, але файл
не доступний локально. --лише інформація корисно, коли файл доступний, а ви ні
бажають оновити базу даних об’єктів.
ВИКОРИСТАННЯ --ІНДЕКС-ІНФО
--index-info — це потужніший механізм, який дозволяє вам передавати визначення кількох записів
із стандартного введення та розроблено спеціально для сценаріїв. Він може приймати вхідні дані
три формати:
1. режим SP sha1 шлях TAB
Перший формат — це те, про що повідомляє «git-apply --index-info» і використовується для реконструкції a
часткове дерево, яке використовується для базового дерева фальшивого злиття під час повернення до 3-стороннього злиття.
2. режим SP тип SP sha1 шлях TAB
Другий формат – це фарш мерзотник ls-дерево вивести в індексний файл.
3. режим SP sha1 SP етап TAB шлях
Цей формат призначений для розміщення етапів вищого порядку у файлі індексу та збігів мерзотник ls-файли
-- етап вихід.
Щоб розмістити запис вищого рівня в індексі, слід спочатку видалити шлях, подавши a
mode=0 запис для шляху, а потім подача необхідних вхідних рядків у третьому форматі.
Наприклад, починаючи з цього індексу:
$ git ls-файли -s
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 0 frotz
ви можете ввести такі дані в --index-info:
$ git update-index --index-info
0 0000000000000000000000000000000000000000 Фроц
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. Щоб скасувати налаштування, використовуйте
--no-assume-unchanged. Щоб побачити, які файли мають встановлений біт «вважати незмінним», використовуйте git
ls-файли -v (див git-ls-файли(1)).
Команда переглядає змінну конфігурації core.ignorestat. Коли це правда, шляхи
оновлено за допомогою git update-index paths... і шляхи, оновлені за допомогою інших команд 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 --really-refresh (1)
$ git update-index --no-assume-unchanged foo.c (2)
$ git diff --лише ім'я (3)
$ редагувати foo.c
$ git diff --лише ім'я (4)
M foo.c
$ git update-index foo.c (5)
$ git diff --лише ім'я (6)
$ редагувати foo.c
$ git diff --лише ім'я (7)
$ git update-index --no-assume-unchanged foo.c (8)
$ git diff --лише ім'я (9)
M 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, якщо це безпечно (тобто версія робочого каталогу відповідає індексу
версія)
Хоча цей біт виглядає схожим на біт припущення незмінного, його мета відрізняється від
припустити незмінні біти. Skip-worktree також має пріоритет над біт припущення незміненого, коли
обидва встановлені.
КОНФІГУРАЦІЯ
Команда враховує змінну конфігурації core.filemode. Якщо ваш репозиторій знаходиться на a
файлова система, виконувані біти якої є ненадійними, має бути встановлено значення false (Див. git-
конфиг(1)). Це змушує команду ігнорувати відмінності в режимах файлів, записаних у
індекс і файловий режим у файловій системі, якщо вони відрізняються лише виконуваним бітом. На таких
невдала файлова система, яку вам, можливо, доведеться використати мерзотник оновлення-індексу --chmod=.
Точно так само, якщо для змінної конфігурації core.symlinks встановлено значення false (Див. git-
конфиг(1)), символічні посилання перевіряються як звичайні файли, а ця команда – ні
змінити режим записаного файлу з символічного посилання на звичайний файл.
Команда переглядає змінну конфігурації core.ignorestat. Побачити використання "припустити без змін"
біт розділ вище.
Команда також переглядає змінну конфігурації core.trustctime. Це може бути корисно, коли
час зміни inode регулярно змінюється чимось поза Git (сканери файлової системи
і системи резервного копіювання використовують ctime для позначення оброблених файлів) (див git-config(1)).
Використовуйте git-update-index онлайн за допомогою сервісів onworks.net