У меня есть несколько неподписанных коммитов в ветке "dev" моего проекта.
Вы ответили на свой вопрос:
… Я должен подписатькаждый коммит…
Вы должны подписать каждый коммит в ветке dev
.Пожалуйста, имейте в виду, что подписание коммита изменяет всю ветвь после этого коммита, поэтому в конце вы должны принудительно нажать ветку dev
.И сделайте резервную копию перед запуском.
Начните с ветки dev
:
git checkout dev
Если в нем всего несколько коммитов (начиная с коммита, где он был разветвлен от master
) тогда вы можете выполнить git rebase -i $COMMIT_ID
и запустить git commit -S --amend
для каждого коммита, который вы хотите подписать.
Если их больше, чем несколько, лучше использовать filter-branch
:
git filter-branch -f --commit-filter 'git commit-tree -S "$@"' $COMMIT_ID..dev
$COMMIT_ID
- это идентификатор коммита, где dev
было разделено от master
.Вы можете найти его с помощью git log --all --decorate
или git merge-base --fork-point master
.
После подписания объедините с master
и нажмите новый dev
:
git checkout master
git merge dev
git push origin master +dev