将文件夹备份转换为Git repo



我继承了一个没有使用任何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]"
  1. 对于单个提交,您可以执行以下操作:

    git commit --date "[Whatever date you want]"