Объединить неподписанные коммиты с мастером

У меня есть несколько неподписанных коммитов в ветке "dev" моего проекта.

Но в проекте произошли изменения, и теперь я должен подписать каждый коммит перед слиянием с мастером.

Как я могу слиться с мастером, если у меня есть коммиты без знака в ветке "dev"?

1 ответ

У меня есть несколько неподписанных коммитов в ветке "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
Другие вопросы по тегам