git ответвление фильтра заменить пустой строкой - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь изменить все сообщения коммита и мне нужно заменить указанную строку c пустым пробелом. Как я могу это сделать?

Я пытался:

git filter-branch --msg-filter 'sed "s/SOMESTR-/ /g"' -- --all

Но я получил это сообщение:

WARNING: You said to rewrite tagged commits, but not the corresponding tag.
WARNING: Perhaps use '--tag-name-filter cat' to rewrite the tag.

Означает ли это, что это сработало?

И после того, как я заменил все коммиты, мне нужно снова сделать pu sh на удаленном компьютере, чтобы обновить все коммиты?

РЕДАКТИРОВАТЬ: я сделал git log, и кажется, что сообщения о коммитах обновлены,

поэтому я полагаю, что мне просто нужно git pu sh -f?

ОБНОВЛЕНИЕ : мне удалось удалить префикс SOMESTR- в сообщениях фиксации. Затем я принудительно нажал на master и увидел, что все сообщения коммита обновлены. Однако мне также необходимо обновить другие ветви и заменить тот же префикс пробелом.

Когда я переключился на другую ветку, я выполнил ту же команду

git filter-branch --msg-filter 'sed "s/SOMESTR-/ /g"' -- --all

и это что-то говорило о силе. Я добавил -f в ветку filter, затем применил еще одну силу pu sh к этой ветке.

Cannot create a new backup.
A previous backup already exists in refs/original/
Force overwriting the backup with -f

Запрос на получение показывает, что сообщения коммита по-прежнему имеют префикс SOMESTR-/, но когда я делаю git log, я вижу две версии одного и того же коммита, один без префикса, а другой с ним. Можно ли набрать sh и объединить запрос на удаление, даже если в сообщении о фиксации все еще отображается необработанный префикс?

1 Ответ

0 голосов
/ 29 января 2020

Это означает именно то, что сказано. У вас были теги, указывающие на переписанные коммиты. Эти теги по-прежнему указывают на переписанные коммиты, а не на переписанные. Иногда это то, что вы хотите, иногда это не так. Если вы также хотите переместить теги, сделайте то, что он говорит, или, возможно, используйте другой фильтр имен, чтобы присвоить новые имена новым тегам.

...