版本控制:从zip到git

时间:2012-01-19 18:42:18

标签: git version-control

我有三个名为[1,2,3]的压缩文件夹,每个文件夹包含相同的项目1,最早的3个,最新的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. 中的内容替换新文件夹中的内容
  9. git add -A
  10. git commit -m "second commit
  11. 解压缩2
  12. 使用3
  13. 中的内容替换新文件夹中的内容
  14. git add -A
  15. git commit -m "third commit
  16. 有人能告诉我这是否是最好的方法吗?

4 个答案:

答案 0 :(得分:5)

将您的三个zip文件解压缩到三个不同的目录中。

第四个目录中初始化git repo。

然后利用--work-tree option,它允许您从git仓库执行git命令,但内容位于所述git仓库的

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目录移动!

答案 1 :(得分:4)

以下是我将如何处理此问题

获取版本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版

对zip文件的版本3重复上述操作。

答案 2 :(得分:2)

每次运行git init时,您都会创建一个空存储库。

如果只有三个文件夹并且您只执行一次,那么这将有效(如果省略git init)。请确保不要删除.git文件夹。

您甚至可以解压缩这三个文件夹并将.git文件夹连续移动到每个文件夹中并在每个单独的文件夹中提交,最终文件夹是新存储库的开头。

答案 3 :(得分:0)

是。只需确保完全替换内容,并捕获所有添加和删除的文件。