Я хочу перестроить/перебазировать все коммиты в ветке 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 даты фиксации и т. д.
Ничто из этого не является особенно хлопотным, но если быстрый инструмент или более простой рабочий процесс сделает это более чисто, то я хотел бы узнать об этом.
git filter-branch
. - person Joseph K. Strauss   schedule 02.01.2015