我最近在创建一个新项目时开始使用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文件 - 有没有办法在项目开始时执行提交? (可能是一个愚蠢的问题,但请随意向我推荐别的东西。)
答案 0 :(得分:2)
如果你这样做,它将适用于每个新的工作树内容(每个存档解压缩):
git add -A .
即如果你要求Git添加新的和修改过的文件,并删除不再存在的文件。
对于其他部分,您可以制作orphan branch,导入压缩历史记录,然后在当前分支上重新设置。
答案 1 :(得分:1)
如上所述 - 您可以非常轻松地将zip存档转换为git存储库。
要将一些新开发与另一个相关但不相同的存储库合并,您可以将这两个存储库链接为一个。可能只需要rebase,但是当我这样做时,我使用了以下命令并在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
是一种将索引设置为给定树的有趣方法。还有“移植物”,但这些似乎对我没用。