Автоматическая фиксация изменений - PullRequest
0 голосов
/ 21 декабря 2011

У меня есть CMS, которая использует git для отслеживания изменений в пользовательском контенте - я каждую ночь сворачиваю их в один коммит.Как вы можете себе представить, один коммит каждый день создавал интересный журнал коммитов.

Я бы хотел немного привести в порядок и думал, что смогу сделать это, сдвинув коммиты (около 100 или около того) в один коммит.Это подходящая стратегия для этих автоматических коммитов?Буду ли я сталкиваться с коллизиями, если один и тот же файл будет указан в двух или более коммитах?Что-то кажется слишком простым, если просто переставить 100 в 1.

E: Это изменения содержимого , а не изменения кодовой базы, поэтому они не очень важны.Было бы неплохо свернуть изменения время от времени, чтобы очистить историю.

1 Ответ

0 голосов
/ 21 декабря 2011

Запустив rebase -i <upstream> и отметив 100 коммитов как "сквош", в командной строке, которую предоставляет Git, у вас не должно возникнуть проблем.Git будет применять каждый патч один за другим, и в итоге вы получите один коммит, отражающий состояние репозитория при финальном коммите.Выбор «fixup» сделает то же самое, но отбросит сообщения промежуточной фиксации (что больше похоже на то, что вы ищете).

И если вы столкнетесь с непредвиденной проблемой во время перебазировки, простой git rebase --abort восстановит ваш исходный репозиторий и историю версий.

Git очень экономит место, однако, если вы не хотите терять историю, вы можете попробовать запустить git gc.Это запускает Git «служебные» задачи, такие как сжатие коммитов в «Packfiles».Если пользовательский контент не меняется значительно изо дня в день, тогда Git сможет сжать вашу историю очень сильно.git gc --aggressive будет работать еще усерднее для сжатия ваших коммитов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...