Для кого-то это может показаться чем-то простым и очевидным, но почему бы не рассказать о том, как можно сделать уникальное имя коммита для пуша на сервер.
У меня некоторые вещи, такие как хранилище Logseq, например, хранятся все в том же Git’е, что и код моих разработок и утилит.
О том, что такое Logseq, и для чего я его использую, я расскажу в одном из следующих постов.
Так как необходимости в осмысленных наименованиях коммитов для этой задачи нет, достаточно будет сделать просто уникальные имена.
Логичнее всего для этого подойдет текущая дата и время создания коммита. Для ее генерации воспользуемся привычной командой date и зададим ей подходящий формат:
date +"%H:%M %d/%m/%Y"
В результате выполнения получится следующее: 19:32 03/01/2023
.
Теперь можно вешать это на имя коммита и отправлять изменения на сервер.
Этот процесс тоже удобно автоматизировать, чтобы не ходить каждый раз в нужный каталог и не выполнять там все команды Git вручную. Создадим простой скрипт, который сделает все за нас:
#!/bin/bash
cd ~/logseq
name=`date +"%H:%M %d/%m/%Y"`
git add -A
git commit -m "$name"
git push origin master
Тут мы переходим в нужный каталог, получаем текущее имя, коммитим с ним изменения и отправляем на сервер. Все.
Сохраняем его с расширением .sh
, кладем в удобное место (у меня для этого есть специальный каталог ~/scripts
) и в нужное время (можно и по Cron’у) выполняем: sh ~/scripts/script.sh
. Имя коммита будет каждый раз разным, хотя в текущей вариации оно будет меняться с периодичностью в минуту. Можно задать и более подробный формат, например, с секундами, но я сходу не могу придумать задачу, для которой необходимо коммитить изменения каждую секунду. Ну а если все-таки такая необходимость есть — в man date
описано, как получить нужный формат.