Самый простой способ - это зафиксировать дерево:
git commit-tree
Объяснение
Вам не нужно делать полный коммит - хотя, конечно, это также сработает. Вам просто нужен снимок , который будет иметь коммит.
К счастью, способ git commit
работает в том, что он создает коммит в несколько этапов. Когда-то git commit
был простым сценарием оболочки, который выполнял другие более простые команды Git: 1
git write-tree
: это не требует аргументови - в случае успеха - создает объект дерева из того, что сейчас находится в индексе, и выводит идентификатор хеша на его стандартный вывод.
git commit-tree
: для этого требуется несколько параметров(столько родительских хеш-идентификаторов, сколько вы выберете, и один хеш-идентификатор дерева) и сообщение фиксации и создает объект фиксации. Снимок коммита - это дерево, хеш-идентификатор которого вы дали ему, полученный на шаге 1. Команда выводит хеш-код нового объекта коммита на стандартный вывод.
git update-ref
: это обновляет ссылку, такую как имя ветви. Требуется как минимум два аргумента: имя для обновления и новое значение (или флаг, обозначающий «удалить имя»).
Все, что вам нужно - это шаг № 1.
1 git update-ref
может быть новее, чем сценарий оболочки коммитов, поскольку в старые добрые времена написание ссылки означало только использование соответствующей команды echo
. Символический HEAD
ref был просто символической ссылкой. Рекомендации никогда не были упакованы. Как только ссылки стали более интересными и нуждались в блокировке, git update-ref
стало необходимо.