将文件夹备份转换为Git仓库

时间:2014-09-24 09:59:48

标签: git

我继承了一个未使用任何SCM开发的项目。相反,我有一系列看起来像这样的文件夹:

my-project.201109011234
my-project.201110010908
my-project.201202040454
my-project.201203011123
...and so on...

每个文件夹都是源代码的完整副本,文件夹以复制时间戳的名称命名。每个副本之间的变化比比皆是,即添加,删除,重命名和更改文件内容的文件和文件夹。

是否有任何类型的工具,我可以在其中提供文件夹列表,它基本上会为我创建一个Git仓库,其中每个文件夹成为提交?之后我希望Git确切地知道每次提交之间发生了什么变化?

感谢Adam。

2 个答案:

答案 0 :(得分:2)

对我而言,这听起来像是一个非常特殊的问题(也就是说,可能没有经过试验和测试的方法将类似的东西整合到git中)。

也就是说,可以通过一些shell / python / xyz脚本轻松设计出一个解决方案。步骤将是这些:

  • 制作一个空的git repo
  • 按时间顺序排列档案
  • 每个档案的
    • 删除项目目录的内容(除.git目录以外的所有内容)
    • 将存档解压缩到项目目录
    • 运行“git add -u”。在目录
    • 运行“git add -f”。在目录
    • 基于存档名称提取/生成提交消息
    • 提交项目目前的状态dir

此解决方案有许多限制(例如不在存档日期执行每次提交),但根据您的重要性,您可以调整脚本。

答案 1 :(得分:1)

除了utnapistim所回复的内容之外,您还可以根据存档日期更改提交和作者日期。

有两种选择:
 1.以下选项将更改所有进一步提交的日期

GIT_AUTHOR_DATE='[Date]' GIT_COMMITTER_DATE='[Date]' git commit -m "[Message]"
  1. 对于个别提交,您可以执行以下操作:

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