2013-08-23 6 views
1

Я думаю, что должна быть фиксация на каждую функцию. Однако одна большая особенность состоит из серии полезных фрагментов. Рассмотрим рефакторинг. Хотя другие говорят, что рефакторины являются побочными эффектами добавления/модификации функциональности и не заслуживают отдельного фиксации, рассмотрим, что я делаю пару исправлений в коде. Все они реорганизуют разные области кода. Я не хочу совершать большой беспорядок, так что это трудно распутать, какие изменения связаны. Поэтому я создаю более одного рефакторинга. Однако, скорее всего, люди не хотят видеть все эти крошечные детали. Поэтому я хочу скрыть все рефакторинги в одной папке коммитов. В средстве просмотра истории, например gitk, я тогда должен иметь возможность развернуть/свернуть папку по своему желанию. Есть ли решение этой проблемы, может быть решена в каком-то другом управлении версиями?Folding git commits

ответ

2

Используйте ветви функции. Слейте их в магистраль с git merge --no-ff. Основная линия - это всего лишь серия коммитов слияния, которые показывают одну добавленную функцию, но если вы хотите увидеть отдельные коммиты, которые вошли в функцию, они находятся прямо на ветке.

0

Я не думаю, что можно сгибать в gitk, возможно, другой зритель может это сделать. Тем не менее, вы можете:

  • Используйте interactive rebase сквош или Fixup совершает в одном (История будет потеряна)
  • Смотреть дифф для ряда фиксаций: sha1..sha2. Все изменения с sha1 до sha2 будут рассматриваться как одно изменение.
+0

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

+0

Насколько я знаю, git не имеет понятия о фиксации папок. – madhead