2015-11-29 4 views
2

Предположим, репозиторий Git, где справедливы следующие условия:Git перебазироваться и подписанная совершает

  • Большинство фиксаций подписываются.
  • Ребазы часто используются, чтобы иметь чистую историю.
  • Иногда несколько человек работают на одной ветке.
  • Подписание фиксации предполагаются иметь в виду, подписывая эквивалентный диф, не подписывая все состояние репо (несмотря на подписанных коммиты также подписание хэша предков)

Теперь я хочу, чтобы перебазировать ветку, в которой я сделал часть работы и сотрудник отодвинули некоторые коммиты; и я хотел бы «сохранить» подписи на сделанных мной коммитах (т. е. переписать все коммиты, которые я сделал с новой историей, даже в случае конфликта слияния), но не подписывать написанную мной работу (т. Я предпочитаю потерять подписи на коммитах от моего коллеги, чем подписывать их).

Я мог бы использовать git rebase -S (как предлагается в ответах на this question); но это также будет подписываться от моего коллеги.

Есть ли способ сделать это?

ответ

1

Имейте в виду, что это хакерский ответ. Вы должны строго рассмотреть [email protected] answer в качестве блокатора того, что вы пытаетесь сделать. (даже если вы только подписываете «diff», введенный фиксацией, что произойдет, если у вас возник конфликт во время rebase? кто подписывает код, введенный в результате разрешения конфликта?)

Это говорит о том, что вы можете сделать это , потерять подписи gpg. А затем с git filter-branch do some magic для повторного gpg-подписания коммитов, созданных вами с помощью вашего ключа, и коммиты, созданные кем-то другим с их ключом.

Смежные вопросы