У нас есть некоторые проблемы с CircleCI, показывающим неверное сообщение о фиксации (и иногда пропускающий сборку). Это проблема как это: https://discuss.circleci.com/t/wrong-git-commit-message-being-displayed/25346,, но автор не последовал ..
В любом случае, я могу попытаться объяснить. После каждого выпуска мы поднимаем версию программы с сообщением о коммите, содержащим [ci skip]. Это работает как талисман, но на экране сборки всегда отображается неверное сообщение git.
Пример : мы видим следующее сообщение Git commit при просмотре списка сборок:
Обратите внимание на последний хеш-коммит: 41b4245 (последний коммит), но сообщение «refactor ThreadUtil ...» - это , а не сообщение коммита для этого хэша, оно должно быть » изменение согласия клиента".
![enter image description here](https://i.stack.imgur.com/1xIaV.png)
Я протестировал множество репозиториев, и кажется, что CircleCI (или веб-крючок из Bitbucket) использует последний коммит из git log -n 5
, чтобы отобразить сообщение и решить, строить или нет.
Вот команды git, которые я использовал для репликации этой проблемы:
![enter image description here](https://i.stack.imgur.com/yLau2.png)
Если последние 5 коммитов (последний с git log -n 5
) содержат [ci skip], сборка пропускается, и мы должны добавить коммит для принудительной сборки.
Обратите внимание на хеш 314e2fc . Отображаемое сообщение от другого коммита (хеш: fe6638a ).
![enter image description here](https://i.stack.imgur.com/Jw7N7.png)
НО если я сделаю новый коммит после этого, он будет работать .. и будет отображаться правильно
Это всегда происходит, когда мы создаем новую ветку.
Это ошибка или я что-то не так делаю, когда я разветвляюсь в git?