Контроль версий: от почтового индекса до мерзавца - PullRequest
4 голосов
/ 19 января 2012

У меня есть три сжатые папки с именем [1,2,3], каждая из которых содержит один и тот же проект 1, самый ранний и 3 самый последний. Я ищу способ объединить все это в 3 git коммита, а 3 наиболее коммитом являются содержимое папок.

Полагаю, я могу сделать следующее:

  1. Распаковать 1.
  2. Возьмите содержимое из 1 места, поместите его в новую папку.
  3. git init
  4. git add -A
  5. git commit -m "first commit
  6. Распаковать 2
  7. заменить содержимое из новой папки содержимым из 2
  8. git add -A
  9. git commit -m "second commit
  10. Распаковать 2
  11. заменить содержимое из новой папки содержимым из 3
  12. git add -A
  13. git commit -m "third commit

Может кто-нибудь сказать мне, если это лучший способ сделать это?

Ответы [ 4 ]

5 голосов
/ 19 января 2012

Распакуйте ваши три архива в три разных каталога.

Инициализация git-репо в четвертом каталоге.

Затем воспользуйтесь опцией --work-tree , которая позволяет вам выполнить команду git из репозитория git, но с содержимым, расположенным вне указанного git repo:

cd /your/git/repo
git add --work-tree=/path/to/zip1 -A .
git commit -m "Add v1"
git add --work-tree=/path/to/zip2 -A .
git commit -m "Add v1"
git add --work-tree=/path/to/zip3 -A .
git commit -m "Add v3"

Другими словами, вы можете добавлять другое содержимое, не переходя из своего каталога git!

4 голосов
/ 19 января 2012

Вот как бы я подошел к этому

Получение версии 1 подтверждено

mkdir MyProj
cd MyProj
git init
# unzip version1 into MyProj
git add -A
git commit -m "Version 1"

Получить версию 2 зафиксировано

# delete everything but the .git directory in MyProject
# unzip version2 into MyProj
git add -A 
git commit -m "Version 2"

Получить совершенную версию 3

Повторите вышеуказанное для версии 3 zip-файла.

2 голосов
/ 19 января 2012

Каждый раз, когда вы запускаете git init, вы создаете пустой репозиторий.

Если папок всего три, и вы делаете это только один раз, тогда это сработает (если вы опустите git init). Только убедитесь, что вы не удалили папку .git.

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

0 голосов
/ 19 января 2012

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

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