Уже существует похожий (идентичный?) вопрос , с очень хорошим ответом , который также решает мою проблему.
В основном мне нужно сделать следующее:
git rev-parse --verify bf450342272a94117d78eae34a140a2a39359dad > .git/info/grafts
git filter-branch -f -- --all
Это перезапишет историю с указанным коммитом в качестве нового корня. Метаданные фиксации не будут затронуты (дата, владелец, ...), только хэш фиксации и ссылки между фиксациями, так что новый граф начинается с указанного корня.
Тогда репо будет unshallowed
/ ungrafted
, и его можно будет обычно отправлять на новые пульты с уменьшенной историей.
У меня был некоторый опыт с помощью CAB несколько лет назад, и мое заключение состояло в том, что он слишком сложный и имел крутую кривую обучения. Как таковой преимущества, которые это предложило просто, не стоили цены набирания скорость с ним. Однако не делайте честное слово, пробуйте после некоторых их лабораторий и смотрите то, что Вы думаете.
Jeremy Miller записал превосходную серию сообщений в блоге о создании Вашего собственного CAB
это достойное внимания, поскольку Вы могли просто взять оттуда, в чем Вы нуждаетесь.
Мой совет состоял бы в том, чтобы продолжить Ваш проект, а не создать платформу впереди. Поскольку проект разрабатывает Вас, должен определить возможности осуществить рефакторинг код в базовые классы и эффективно получить платформу из Вашего приложения.
Тем путем Вы закончите с платформой, которая удовлетворяет Ваши потребности, и что все на группе разработчиков поймут. Независимо от того, что Вы делаете не, создают платформу впереди - там находится путь к крушению :-)
В то время как я на самом деле никогда не использовал CAB, он поставлется с исходным кодом, таким образом, у Вас все еще была бы способность настроить его для удовлетворения точным потребностям при необходимости в дополнительной гибкости, не обеспеченной Блоком приложений.
CAB отменен в пользу SCSF . И CAB, и SCSF предлагают некоторую ценность с точки зрения стандартизации разработки полнофункциональных клиентов для разных проектов (если вы используете их таким образом), но оба они очень тяжелые.
We have used CAB+SCSF for a couple of projects. The learning curve is indeed steep. You will probably be up to speed after the first month. Other cons:
The pros:
Follows the best practices architectural design patterns in the industry:
Using CAB-SCSF in the long run will mean less bugs and more maintainable code. If your project can afford the initial hit of the learning curve I will definitely recommend it.