在iOS开发课程之后,我有几个作业。完成每项任务后,我制作了完整项目目录的副本。所以,现在经过4次分配后,我有4个目录,每个目录都有一个项目当时的快照。
现在我想启动一个git存储库,并在那里拥有“完整”历史记录。我想从第一个目录开始,即使用项目的第一个版本,推送所有内容,然后推送第一个和第二个之间的差异,等等。但是因为它们位于不同的目录中,我想我不能简单地“git remote add origin”一个接一个地“add --all”,“commit”和“push”?因为使用“git add --all”我会把所有内容都推到一边,而不是差异吗?
澄清:目录都不是git存储库
答案 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
'可以使用。