Как я могу обновить номера версий моего проекта с помощью Git?
Скажем, у меня есть две ветви: develop
а также feature
,
Предположим, у меня также есть файл с именем VersionNumber
который имеет следующее содержание:
BUILD_NUMBER 1
Я хочу использовать Git-хуки, чтобы при слиянии feature
в develop
, BUILD_NUMBER
поле увеличивается автоматически.
Я думал о следующем процессе, используя post-merge
крюк:
- Проверьте, что объединяемая ветка
develop
- Обновите
VersionNumber
файл путем увеличенияBUILD_NUMBER
на 1 - Добавьте обновленный файл:
git add VersionNumber
- Изменить коммит:
git commit --amend -C HEAD --no-verify
Все отлично работает до последней команды. Git говорит, что я не могу изменить коммит в середине слияния (что удивляет меня, так как я думал, что это было post-merge
).
Любой совет, как я могу это сделать (используя post-merge
или любой другой крючок в этом отношении)?
1 ответ
К сожалению, в вашем вопросе отсутствует пример кода. Однако я был в состоянии воспроизвести для удовольствия. Действительно, вы не можете вносить изменения (например, изменение файла) в коммит слияния - это, кажется, имеет некоторый смысл. На самом деле вы после слияния, но с помощью amend
вы пытаетесь вернуться в коммит слияния и изменить его.
Поэтому я думаю, что лучший шанс для вас - просто добавить коммит для повышения версии.
Что-нибудь еще просто сделало бы это ужасно сложным и склонным к угловым случаям, которые не работают и стоят вам много времени, чтобы понять, как спасти ваши коммиты и управление версиями. Я всегда хотел, чтобы все было как можно проще. Но, может быть, кто-то еще может придумать что-нибудь получше.
Это post-merge
крючок я написал, если кому интересно; не проверяет ветку:
perl -i -pe 's/(\d+)/1+$1/e' VersionNumber
echo "bump version: `cat VersionNumber`"
git add VersionNumber
git commit --amend -m "bump version: `cat VersionNumber`"