українська мова ▾
Localized versions of git-update-ref manual
  1. English
  2. Português (Brasil)
  3. українська мова
  4. 简体中文
Topics ▾ Latest version ▾ git-update-ref last updated in 2.50.0
Changes in the git-update-ref manual
  1. 2.50.1 → 2.52.0 no changes
  2. 2.50.0 2025年06月16日
  3. 2.48.1 → 2.49.1 no changes
  4. 2.48.0 2025年01月10日
  5. 2.46.1 → 2.47.3 no changes
  6. 2.46.0 2024年07月29日
  7. 2.45.1 → 2.45.4 no changes
  8. 2.45.0 2024年04月29日
  9. 2.43.1 → 2.44.4 no changes
  10. 2.43.0 2023年11月20日
  11. 2.30.1 → 2.42.4 no changes
  12. 2.30.0 2020年12月27日
  13. 2.29.1 → 2.29.3 no changes
  14. 2.29.0 2020年10月19日
  15. 2.27.1 → 2.28.1 no changes
  16. 2.27.0 2020年06月01日
  17. 2.19.3 → 2.26.3 no changes
  18. 2.19.2 2018年11月21日
  19. 2.18.1 → 2.19.1 no changes
  20. 2.18.0 2018年06月21日
  21. 2.7.6 → 2.17.6 no changes
  22. 2.6.7 2017年05月05日
  23. 2.2.3 → 2.5.6 no changes
  24. 2.1.4 2014年12月17日
  25. 2.0.5 2014年12月17日

Check your version of git by running

git --version

НАЗВА

git-update-ref - Безпечно оновити ім’я об’єкта, що зберігається в посиланні

СИНОПСИС

git update-ref [-m <reason>] [--no-deref] -d <ref> [<old-oid>]
git update-ref [-m <reason>] [--no-deref] [--create-reflog] <ref> <new-oid> [<old-oid>]
git update-ref [-m <reason>] [--no-deref] --stdin [-z] [--batch-updates]

ОПИС

За наявності двох аргументів зберігає <new-oid> у <ref>, можливо, розіменуючи символічні посилання. Наприклад, git update-ref HEAD <new-oid> оновлює поточний заголовок гілки до нового об’єкта.

За наявності трьох аргументів зберігає <new-oid> у <ref>, можливо, розіменовуючи символічні посилання, після перевірки, що поточне значення <ref> відповідає <old-oid>. Наприклад, git update-ref refs/heads/master <new-oid> <old-oid> оновлює заголовок гілки master до <new-oid>, лише якщо його поточне значення дорівнює <old-oid>. Ви можете вказати 40 "0" або порожній рядок як <old-oid>, щоб переконатися, що посилання, яке ви створюєте, не існує.

Останніми аргументами є імена об’єктів; ця команда без будь-яких опцій не підтримує оновлення символічного посилання, щоб воно вказувало на інше посилання (див. git-symbolic-ref[1]). Але git update-ref --stdin має команди symref-*, щоб звичайні та символічні посилання могли бути зафіксовані в одній транзакції.

Якщо задано --no-deref, перезаписується сам <ref>, а не результат виконання символічних вказівників.

З опцією -d видаляється іменований <ref> після перевірки, що він все ще містить <old-oid>.

З --stdin, update-ref зчитує інструкції зі стандартного вводу та виконує всі зміни разом. Вкажіть команди виду:

update SP <ref> SP <new-oid> [SP <old-oid>] LF
create SP <ref> SP <new-oid> LF
delete SP <ref> [SP <old-oid>] LF
verify SP <ref> [SP <old-oid>] LF
symref-update SP <ref> SP <new-target> [SP (ref SP <old-target> | oid SP <old-oid>)] LF
symref-create SP <ref> SP <new-target> LF
symref-delete SP <ref> [SP <old-target>] LF
symref-verify SP <ref> [SP <old-target>] LF
option SP <opt> LF
start LF
prepare LF
commit LF
abort LF

З опцією --create-reflog, update-ref створить reflog для кожного посилання, навіть якщо зазвичай він не створюється.

З параметром --batch-updates, update-ref виконує оновлення пакетом, але дозволяє окремим оновленням завершуватися невдало через недійсні або неправильні дані користувача, застосовуючи лише успішні оновлення. Однак системні помилки, такі як збої вводу/виводу або проблеми з пам’яттю, призведуть до повного збою всіх пакетних оновлень. Будь-які невдалі оновлення будуть повідомлені в такому форматі:

rejected SP (<old-oid> | <old-target>) SP (<new-oid> | <new-target>) SP <rejection-reason> LF

Поля, що містять пробіли, беріть у лапки так, ніби це рядки у вихідному коді C, тобто оточені подвійними лапками та екранованими зворотною скісну рискою. Використовуйте 40 символів "0" або порожній рядок, щоб вказати нульове значення. Щоб вказати відсутнє значення, повністю пропустіть значення та попередній йому пробіл.

Або ж використовуйте -z для вказівки у форматі, що завершується NUL, без лапок:

update SP <ref> NUL <new-oid> NUL [<old-oid>] NUL
create SP <ref> NUL <new-oid> NUL
delete SP <ref> NUL [<old-oid>] NUL
verify SP <ref> NUL [<old-oid>] NUL
symref-update SP <ref> NUL <new-target> [NUL (ref NUL <old-target> | oid NUL <old-oid>)] NUL
symref-create SP <ref> NUL <new-target> NUL
symref-delete SP <ref> [NUL <old-target>] NUL
symref-verify SP <ref> [NUL <old-target>] NUL
option SP <opt> NUL
start NUL
prepare NUL
commit NUL
abort NUL

У цьому форматі використовуйте 40 "0" для позначення нульового значення та порожній рядок для позначення відсутнього значення.

В будь-якому форматі значення можна вказувати в будь-якій формі, яку Git розпізнає як ім’я об’єкта. Команди в будь-якому іншому форматі або повторюваний <ref> призводять до помилки. Значення команд:

update

Встановіть <ref> на <new-oid> після перевірки <old-oid>, якщо він заданий. Вкажіть нульовий <new-oid>, щоб переконатися, що посилання не існує після оновлення, та/або нульовий <old-oid>, щоб переконатися, що посилання не існує до оновлення.

create

Створити <ref> з <new-oid> після перевірки його неіснування. Вказаний <new-oid> може не дорівнювати нулю.

delete

Видалити <ref> після перевірки його існування з <old-oid>, якщо його вказано. Якщо його вказано, <old-oid> може не дорівнювати нулю.

symref-update

Встановіть <ref> на <new-target> після перевірки <old-target> або <old-oid>, якщо вказано. Вкажіть нульовий <old-oid>, щоб переконатися, що посилання не існує до оновлення.

verify

Перевірте <ref> відносно <old-oid>, але не змінюйте його. Якщо <old-oid> дорівнює нулю або відсутній, посилання не повинно існувати.

symref-create: Створити символічне посилання <ref> з <new-target> після перевірки того, що воно не існує.

symref-delete

Видалити <ref> після перевірки його існування з <old-target>, якщо його вказано.

symref-verify

Перевірте символічний <ref> відносно <old-target>, але не змінюйте його. Якщо <old-target> відсутній, посилання не повинно існувати. Можна використовувати лише в режимі no-deref.

option

Змініть поведінку наступної команди, яка іменує <ref>. Єдиний допустимий параметр — no-deref, щоб уникнути розіменування символічного посилання.

старт

Розпочати транзакцію. На відміну від нетранзакційного сеансу, транзакція автоматично перерветься, якщо сеанс завершиться без явного підтвердження (commit). Ця команда може створити нову порожню транзакцію, якщо поточну вже зафіксовано або перервано.

підготувати

Підготуйтеся до фіксації транзакції. Це створить файли блокування для всіх оновлень посилань у черзі. Якщо одне посилання не вдалося заблокувати, транзакцію буде перервано.

коміт

Зафіксувати всі оновлення посилань, що знаходяться в черзі для транзакції, завершуючи транзакцію.

перервати

Перервати транзакцію, знявши всі блокування, якщо транзакція перебуває у стані підготовки.

Якщо всі <ref> можна одночасно заблокувати відповідними <old-oid>, усі зміни виконуються. В іншому випадку жодні зміни не виконуються. Зверніть увагу, що хоча кожен окремий <ref> оновлюється або видаляється атомарно, одночасний читач все ще може бачити підмножину змін.

ОНОВЛЕННЯ РЕЄСТРАЦІЇ

Якщо параметр конфігурації "core.logAllRefUpdates" має значення true, а посилання знаходиться в "refs/heads/", "refs/remotes/", "refs/notes/" або псевдопосиланні, такому як HEAD чи ORIG_HEAD; або файл "$GIT_DIR/logs/<ref>" існує, тоді git update-ref додасть рядок до файлу журналу "$GIT_DIR/logs/<ref>" (розіменування всіх символічних посилань перед створенням назви журналу), що описує зміну значення посилання. Рядки журналу форматуються так:

oldsha1 SP newsha1 SP committer LF

Де "oldsha1" — це 40-символьне шістнадцяткове значення, яке раніше зберігалося в <ref>, "newsha1" — це 40-символьне шістнадцяткове значення <new-oid>, а "committer" — це ім’я, адреса електронної пошти та дата комітера у стандартному форматі ідентифікатора комітера Git.

За потреби з -m:

oldsha1 SP newsha1 SP комітер TAB-повідомлення LF

Де всі поля такі, як описано вище, а "message" – це значення, передане опції -m.

Оновлення завершиться невдачею (без зміни <ref>), якщо поточний користувач не може створити новий файл журналу, додати зміни до існуючого файлу журналу або не має доступної інформації про комітер.

НОТАТКИ

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

Ця команда слідує за справжніми символічними посиланнями, лише якщо вони починаються з "refs/": інакше вона просто спробує прочитати їх та оновити як звичайний файл (тобто дозволить файловій системі слідувати за ними, але перезапише таке символічне посилання на інше місце зі звичайною назвою файлу).

ДИВ. ТАКОЖ

GIT

Частина набору git[1]

AltStyle によって変換されたページ (->オリジナル) /