从几个目录(快照)构建Git仓库

时间:2014-10-06 07:43:09

标签: git

在iOS开发课程之后,我有几个作业。完成每项任务后,我制作了完整项目目录的副本。所以,现在经过4次分配后,我有4个目录,每个目录都有一个项目当时的快照。

现在我想启动一个git存储库,并在那里拥有“完整”历史记录。我想从第一个目录开始,即使用项目的第一个版本,推送所有内容,然后推送第一个和第二个之间的差异,等等。但是因为它们位于不同的目录中,我想我不能简单地“git remote add origin”一个接一个地“add --all”,“commit”和“push”?因为使用“git add --all”我会把所有内容都推到一边,而不是差异吗?

澄清:目录都不是git存储库

1 个答案:

答案 0 :(得分:2)

如果这些项目目录不是git repos本身,最简单的方法是使用the git command--work-tree选项:

git init newRepo
cd newRepo

git --work-tree=/path/to/project1 add -A .
git commit -m "Project1"

git --work-tree=/path/to/project2 add -A .
git commit -m "Project2"

第二个添加命令只会在project1(已经版本化)和project2之间添加增量。

最后,您确实需要一个git reset --hard,以使您的工作树(您的实际git仓库)与索引同步。

请注意,在此过程中任何git status都不起作用(因为它会将您的本地空工作树与索引进行比较,并且会显示删除结果)。

虽然'git --work-tree=/path/to/projectx status'可以使用。