2011-12-08 146 views
3

我最近在创建新项目时开始使用Git,直到那时我只是通过压缩每个人和每个人的源代码来定期备份项目。所以我现在每个(旧)项目都有几个DD.MM.YYYY.zip文件 - 每个项目只有一个分支。将现有项目迁移到git

现在我想摆脱所有这些.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文件正在放置 - 有什么方法可以对项目的开始执行提交吗? (可能是一个愚蠢的问题,但随时给我建议别的东西。)

回答

3

如果你这样做会的工作,每一个新的工作树内容(每个存档解压缩):

git add -A . 

也就是说,如果你要求Git添加新的和修改的文件,并删除不再存在的文件。

对于额外的部分,你可以做一个orphan branch,导入你的压缩历史,然后重新绑定你的当前分支。

+0

关于附加部分:我创建了一个新的(孤儿)分支,称为(例如)'legacy',然后在其上重新设置'master'?我平时的工作分支是不是被称为“遗产”? –

1

如前所述 - 你可以很容易地将zip档案转换成git存储库。

为了将一些新开发与另一个相关但不相同的存储库合并,您可以将这两个链接合并为一个。可能衍合是你所需要的,但我这样做,当我用下面的命令,并在blog article张贴多一点讨论

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是该指数设定为定树一种有趣的方式。也有'嫁接',但这些似乎并没有对我有用。