Что является хорошим способом управления коммитами очистки в git для унаследованного проекта? - PullRequest
8 голосов
/ 02 января 2012

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

Я бы хотел улучшить его, работая с ним, но исправление таких вещей, как отступы, делает историю коммитов довольно уродливой.

Я не говорю о небольших проблемах с отступами, когда строка находится на расстоянии одного пробела, я говорю о чем-то вроде

 class Xyz
def foo
end

   def bar
  @something
end
   end

Какой хороший способ очистить подобный код, сохранив при этом мою историю? Должен ли я просто автоматически выровнять все и сделать один огромный коммит?

Ответы [ 2 ]

9 голосов
/ 02 января 2012

Я бы все это исправил в отдельной (локальной) ветке.Как только я буду готов, я сделаю «слияние в сквош»

git checkout -b cleanup develop
# Do some cleanup, do some commits and so on
git checkout develop
git merge --squash cleanup 
git commit -m "My Cleanup"
git branch -D cleanup

Таким образом, я получу «огромный коммит» с этими изменениями, но я не буду доверять любому автоформатору (по крайней мере, не полностью).) и я не должен делать это в один день или полностью без коммитов до слияния.

1 голос
/ 02 января 2012

Вы можете выполнить очистку в отдельной ветке, а когда закончите, слить ее обратно в основную ветку.

Это дает вам время для очистки, и вам не нужно редактировать историю (что я никогда не делаю)

...