Есть ли способ изящно изменить историю ветвей git, когда существуют его вилки?

Я хотел бы исправить некоторые недействительные авторские данные, используя git фильтр-ветвь. Проблема в том, что есть вилки ветки, которые тогда не синхронизировались.

Можно ли объединить изменения в журнал фиксации в вилки?

Ответ 1

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

Ответ 2

Лучшее, что вы могли бы сделать в этом случае, - добавить примечания (git notes).

Как упоминалось в " Использование git notes для разметки счета реальных вкладов:

мы могли бы использовать функцию Git notes, чтобы решить тонну наших проблем, связанных с предоставлением кредита, в котором должен быть кредит.
В принципе, заметки - это способ, которым вы можете прикреплять дополнительные метаданные к фиксации.

Как много пространств имен, как мы хотим, и столько же элементов в каждом пространстве имен, сколько хотим. Тот же человек может получить кредит за выполнение нескольких вещей.

Итак, определите специальное пространство имен для такого рода исправлений, и по крайней мере информация может жить (и клонироваться) здесь.

Ответ 3

перейдите и внесите изменения, но сохраните старую историю с новым именем или тегом ветки. Сделайте это описательным, поскольку каждый будет иметь момент WTF. Это зависит от них, чтобы компенсировать их выдающиеся изменения, чтобы продолжать вносить свой вклад. Или вы могли бы быть красивыми и отправлять им по электронной почте то, что вы сделали, чтобы они пропускали часть WTF;)