Добавление старых версий кода в git repo - PullRequest
4 голосов
/ 20 февраля 2011

У меня есть git-репо для моего проекта, и мой первый коммит был в версии 1.2. Перед git я использовал ежедневные снимки своего кода, чтобы сохранить его в безопасности. Теперь я хотел бы добавить все имеющиеся в репозитории снимки, начиная с v0.3, но у меня уже есть довольно много коммитов поверх 1.2. Так каков наилучший способ продолжить? Должен ли я просто сделать снимки один за другим и добавить теги? Или я должен создать еще одну ветку для всех этих снимков? Или, может быть, начать новое репо с v0.3 и зафиксировать все снимки, а затем каким-то образом объединить репо со старым, основанным на 1.2?

Ответы [ 2 ]

5 голосов
/ 20 февраля 2011

Ответ Бена , безусловно, хороший путь, если вы не сделали этот репозиторий общедоступным.

Если, с другой стороны, вы уже опубликовали свой текущий репозиторий и, следовательно,Я не хочу переносить свой корневой коммит на предыдущую работу, я бы предложил что-то непересекающееся.Лично у меня возникнет соблазн просто создать еще одну ветку в хранилище под названием «legacy» или что-то подобное, запустить ее с новым корневым коммитом с самого первого снимка и зафиксировать все остальные поверх него.Предположительно, основное применение здесь - это просто архивирование этой работы и, возможно, проверка ее или расхождение с ней в какой-то момент - и вы сможете сделать все это, даже если история немного странная:

# No commits in common!

- o - o - o - o - o (master)

- o - o - o (legacy)
4 голосов
/ 20 февраля 2011

Вы можете git filter-branch --parent-filter перенести вашу работу на старые версии, но это вызовет проблемы, если вы поделитесь своим репо с кем-либо еще.Все получит новый SHA.На самом деле нет способа избежать этого: родители (возвращаясь к первоначальной ревизии) являются частью SHA каждой ревизии.Если вас это не волнует (если это ваш личный репо), тогда сделайте это.

В git help filter-branch есть пример для выполнения именно того, что вы хотите.

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