перенос существующего проекта в git - PullRequest
3 голосов
/ 08 декабря 2011

Я недавно начал использовать Git при создании нового проекта - до этого я делал регулярные резервные копии проектов, просто архивируя исходные данные всех и каждого.Теперь у меня есть несколько файлов DD.MM.YYYY.zip для каждого (старого) проекта - кстати, у каждого проекта есть только одна ветвь.

Теперь я хочу избавиться от всех этих файлов .zip и портавсе, чтобы Git.Вот что я подумал:

Create a new repository.

    git init

Copy the files from the oldest .zip file into the repository.

    git add ...
    git commit ...

Delete the files copied from the oldest .zip file.
Copy the files from the second oldest .zip file into the repository.

    git add ...
    git commit ...

Delete the files copied from the second oldest .zip file.
...

Это сработает?Есть ли лучшее решение для достижения того, чего я хочу?


Дополнительно:
Для некоторых (старых) проектов я запустил Git-репозиторий с новым источником и продолжил программирование.Для этих проектов все еще есть несколько файлов DD.MM.YYYY.zip - есть ли способ выполнить коммит в начале проекта?(Может быть, глупый вопрос, но не стесняйтесь предложить мне что-то еще.)

Ответы [ 2 ]

2 голосов
/ 08 декабря 2011

Это будет работать, если вы это сделаете, для каждого нового содержимого рабочего дерева (с каждым разархивированным архивом):

git add -A .

Т.е., если вы попросите Git добавить новые и измененные файлы и удалить файлы, которые небольше не существует.

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

1 голос
/ 08 декабря 2011

Как уже упоминалось - вы можете очень легко превратить zip-архивы в git-репозиторий.

Для объединения некоторых новых разработок с другим связанным, но неидентичным репозиторием, вы можете связать их в один.Возможно, ребаз это все, что вам нужно, но когда я сделал это, я использовал следующие команды и разместил немного больше обсуждения в статье блога

git remote add jdc file:///opt/src/tile-qt-jdc
git fetch jdc
git ls-tree 1519481 
git read-tree -m 1519481
git checkout-index -f -u -a

read-tree - это интересный способ установитьиндекс для данного дерева.Есть также «прививки», но они не показались мне такими полезными.

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