Это команда git-update-ref, которую можно запустить в провайдере бесплатного хостинга OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
git-update-ref - безопасно обновить имя объекта, хранящееся в ссылке
СИНТАКСИС
мерзавец обновление-ссылка [-m ] (-d [ ] | [--no-deref] [--create-reflog] [ ] | --stdin [-z])
ОПИСАНИЕ
Учитывая два аргумента, сохраняет в , возможно разыменование
символические ссылки. Например, git update-ref HEAD обновляет заголовок текущей ветки до
новый объект.
Учитывая три аргумента, сохраняет в , возможно разыменование
символические ссылки, после проверки того, что текущее значение Матчи .
Например, git update-ref refs / Heads / master обновляет главную ветку
к только если его текущее значение . Вы можете указать 40 "0" или пустое
строка как чтобы убедиться, что создаваемая ссылка не существует.
Это также позволяет файлу "ref" быть символическим указателем на другой файл ref, начиная с
четырехбайтовая последовательность заголовка «ref:».
Что еще более важно, он позволяет обновлению файла ссылки следовать этим символическим указателям,
являются ли они символическими ссылками или этими «символическими ссылками на обычные файлы». Следует реальные символические ссылки
только если они начинаются с "refs /": в противном случае он просто попытается прочитать их и обновить
как обычный файл (т.е. он позволит файловой системе следовать за ними, но перезапишет
такая символическая ссылка на другое место с обычным именем файла).
Если задано --no-deref, сам перезаписывается, а не результат следующего
символические указатели.
В общем, используя
git update-ref HEAD "$ head"
должен быть много безопаснее, чем делать
echo "$ head"> "$ GIT_DIR / HEAD"
оба с точки зрения символической ссылки и точка зрения проверки ошибок. "Refs /"
Правило для символических ссылок означает, что символические ссылки, указывающие "за пределы" дерева, безопасны: они будут
следовать для чтения, но не для записи (поэтому мы никогда не будем писать через символическую ссылку ref на
какое-то другое дерево, если вы скопировали весь архив, создав дерево символических ссылок).
С флагом -d он удаляет названный после проверки он все еще содержит .
С --stdin update-ref считывает инструкции со стандартного ввода и выполняет все
модификации вместе. Укажите команды формы:
обновить SP SP [SP ] LF
создать СП SP LF
удалить SP [SP ] LF
проверить SP [SP ] LF
вариант SP LF
С --create-reflog update-ref будет создавать журнал ссылок для каждой ссылки, даже если она не будет
обычно создаются.
Поля кавычек, содержащие пробелы, как если бы они были строками в исходном коде C; т.е.
окружен двойными кавычками и экранированием с обратной косой чертой. Используйте 40 знаков "0" или пустой
строка для указания нулевого значения. Чтобы указать отсутствующее значение, опустите значение и его
предшествующий SP целиком.
В качестве альтернативы используйте -z, чтобы указать формат с завершающим нулем, без кавычек:
обновить SP NUL NUL [ ] NUL
создать СП NUL NUL
удалить SP NUL [ ] NUL
проверить SP NUL [ ] NUL
вариант SP NUL
В этом формате используйте 40 «0», чтобы указать нулевое значение, и используйте пустую строку, чтобы указать
отсутствующее значение.
В любом формате значения могут быть указаны в любой форме, которую Git распознает как объект.
имя. Команды в любом другом формате или повторяющиеся выдает ошибку. Значения команд
составляют:
обновление
Установленный к после проверки , если дано. Укажите ноль
чтобы убедиться, что ссылка не существует после обновления и / или ноль
чтобы убедиться, что ссылка не существует перед обновлением.
Создайте
Создавать с участием после проверки его не существует. Данный
не может быть нулевым.
удалять
Удалить после проверки его существования с помощью , если дано. Если дано,
не может быть нулевым.
проверить
Проверять против но не меняйте это. Если ноль или отсутствует,
ссылка не должна существовать.
вариант
Измените поведение следующей команды, назвав . Единственный допустимый вариант - no-deref
чтобы избежать разыменования символической ссылки.
Я упал s можно заблокировать с помощью соответствия s одновременно, все модификации
выполняются. В противном случае никаких изменений не производится. Обратите внимание, что в то время как каждый человек
обновляется или удаляется атомарно, одновременный читатель может по-прежнему видеть подмножество
изменения.
ВЕДЕНИЕ ЖУРНАЛА ОБНОВЛЕНИЯ
Если параметр конфигурации "core.logAllRefUpdates" имеет значение true, а ссылка меньше
«refs / heads /», «refs / remotes /», «refs / notes /» или символический ref HEAD; или файл
"$ GIT_DIR / журналы / "существует, то git update-ref добавит строку в файл журнала
"$ GIT_DIR / журналы / "(разыменование всех символических ссылок перед созданием имени журнала)
описывающий изменение значения ref. Строки журнала имеют следующий формат:
1. oldsha1 SP newsha1 SP коммиттер LF
Где oldsha1 - это 40-символьное шестнадцатеричное значение, ранее сохраненное в ,
"newsha1" - это 40-символьное шестнадцатеричное значение а "коммиттер" - это
имя коммиттера, адрес электронной почты и дата в стандартном формате идентификатора коммиттера Git.
Необязательно с -m:
1. oldsha1 SP newsha1 SP коммиттера TAB сообщение LF
Где все поля такие, как описано выше, а «сообщение» - это значение, указанное в -m
опцию.
Обновление не удастся (без изменения ), если текущий пользователь не может создать новый
файл журнала, добавить в существующий файл журнала или не имеет информации о коммиттере
доступен.
GIT
Часть мерзавец(1) люкс
Используйте git-update-ref онлайн с помощью сервисов onworks.net