Переписывание истории Git: Как мне удалить подпись? - PullRequest
4 голосов
/ 11 сентября 2010

Когда вы переписываете историю репозитория Git, как вы удаляете подписи (созданные git commit -s или git commit --signoff)?

git filter-branch commit-filter поддерживает только переменныеиспользуется git commit-tree:

GIT_AUTHOR_NAME
GIT_AUTHOR_EMAIL
GIT_AUTHOR_DATE
GIT_COMMITTER_NAME
GIT_COMMITTER_EMAIL
GIT_COMMITTER_DATE
EMAIL

Ответы [ 2 ]

12 голосов
/ 11 сентября 2010

Подписи являются лишь частью тела сообщения. Итак, вы захотите использовать git filter-branch --msg-filter для запуска команды, чтобы найти строки, начинающиеся с Signed-off-by:, и удалить их.

Что-то вроде

git filter-branch --msg-filter "sed /^Signed-off-by:/d"

должен сделать трюк.

1 голос
/ 11 сентября 2010

Удаление всех подписей или всех подписей по конкретному лицу / адресу электронной почты см. В ответе Брайана.

На основе предоставленной Брайаном информации (то есть, что подписи являются частьюсообщение о коммите), было легко выяснить, как удалять или изменять отдельные подписи:

Запустите интерактивную ребазу (git rebase -i) на родительском коммите, который имеет подпись, найдитекоммит в появившемся редакторе и замените pick на reword.В появившемся редакторе настройте сообщение коммита по своему вкусу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...