2012-01-19 69 views
4

我有三个压缩文件夹,名称分别为[1,2,3],每个文件夹都包含相同的项目1,其中最早的项目是1,最近的项目是3。我正在寻找一种方法将所有这些合并到3个git提交中,并且3个最重要的提交是文件夹内容。版本控制:从zip到git

我想我可以做到以下几点:

  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

谁能告诉我,如果这是为了做到这一点,最好的方法是什么?

+0

除了第一步,git init步骤似乎并不必要。 –

+0

额外的git init的复制和粘贴错误谢谢! – ThomasReggi

回答

2

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

如果只有三个文件夹,并且只做一次,那么这将起作用(如果您省略git init)。只要确保不要清除.git文件夹。

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

+0

额外的git init的复制和粘贴错误,谢谢! – ThomasReggi

0

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

4

这是我会怎么处理这

获取版本1 COMMITED

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文件。

5

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

第四个目录中初始化git回购。

然后利用--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目录移动!