我继承了一个没有使用任何SCM开发的项目。相反,我有一系列文件夹,看起来像:
my-project.201109011234
my-project.201110010908
my-project.201202040454
my-project.201203011123
...and so on...
每个文件夹都是源代码的完整副本,并且该文件夹以创建副本时的时间戳命名。每个副本之间都有大量更改,即添加、删除、重命名文件和文件夹,以及更改文件内容。
有没有什么工具,我可以给它提供一个文件夹列表,它基本上会为我创建一个Git repo,每个文件夹都变成一个提交?之后,我希望Git确切地知道每次提交之间发生了什么变化?
谢谢亚当。
在我看来,这是一个需要解决的特殊问题(也就是说,可能没有一个经过测试的方法可以将这样的东西集成到git中)。
也就是说,只需一点shell/python/xyz脚本就可以轻松地设计出解决方案。步骤如下:
- 进行空的git回购
- 按时间顺序列出档案
- 对于每个存档:
- 删除项目目录的内容(除.git目录外的所有内容)
- 将归档文件解压缩到项目目录
- 在目录中运行"git add-u。"
- 在目录中运行"git add-f。"
- 基于存档名称提取/生成提交消息
- 提交项目目录的当前状态
这个解决方案有很多限制(比如不在归档日期执行每次提交),但根据对您来说重要的内容,您可以调整脚本。
除了utnapistim回复的内容外,您还可以根据存档日期更改提交和作者日期。
有两个选项:
1.以下选项将更改所有进一步提交的日期
GIT_AUTHOR_DATE='[Date]' GIT_COMMITTER_DATE='[Date]' git commit -m "[Message]"
对于单个提交,您可以执行以下操作:
git commit --date "[Whatever date you want]"