2013-08-15 3 views
3

Есть ли command/script, который принимает commit ID или filename уже сделанного фиксации в качестве входных данных и изменяет сообщение фиксации без изменения commit ID?git: Как изменить сообщение фиксации уже сделанного коммита неинтерактивно без изменения идентификатора фиксации?

Я изучил варианты, такие как git filter-branch, git rebase, git notes, но они не позволяют изменять для отдельных коммитов, и все они являются интерактивными. Есть ли способ сделать это неинтерактивно?

+0

Вы можете сделать это для последней фиксации с помощью 'git commit -amend -C (message)'. Для более высокой фиксации это немного сложнее. Вам нужно будет пересоздать или фильтровать ветвь, как вы сказали, но я не знаю, как сделать это автоматически. Я также хочу увидеть некоторые ответы :) –

+0

Нет, '--amend' изменит идентификатор фиксации. – platforms

ответ

7

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

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

+0

ОК, спасибо :) .. Я полностью согласен с вашей точкой. Есть ли еще способ изменить сообщение фиксации определенного идентификатора фиксации? Я ищу скрипт/команду, которая может помочь. – Iowa

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