Любые инструменты перебазируют ветку в Git при запуске go fmt для каждой фиксации отдельно?

Я хочу перестроить/перебазировать все коммиты в ветке Git X с помощью инструмента форматирования исходного кода, такого как go fmt или indent.

Я ожидаю, что рабочий процесс будет примерно состоять из создания новой ветки от master и повторения следующего с $_ по коммитам в X:

git cherry-pick $_
go fmt ...
git commit -a --amend

Или, может быть, даже

git cherry-pick -n $_
go fmt ...
git cherry-pick --continue

Однако я не ожидал, что -n и --continue будут так играть вместе. Кроме того, естественно, нужно сделать go fmt фиксацию для X и go diff X new, когда это будет сделано.

Тем не менее, есть много шагов, которые могут привести к ошибке в этой процедуре, например, -a попытка изменить файлы, которые не были изменены в исходной фиксации, go fmt запутанное исправление Git, изменение Git даты фиксации и т. д.

Ничто из этого не является особенно хлопотным, но если быстрый инструмент или более простой рабочий процесс сделает это более чисто, то я хотел бы узнать об этом.


person Jeff Burdges    schedule 02.01.2015    source источник
comment
Способ утомительный. Вместо этого проверьте git filter-branch.   -  person Joseph K. Strauss    schedule 02.01.2015


Ответы (1)