有没有将多个文件版本导入git的工具?

有没有将多个文件版本导入git的工具?,git,git-fast-import,Git,Git Fast Import,我经常会遇到以下情况: 我从一个应该是“小项目”(几乎总是一个单文件脚本)开始,然后决定这个项目足够简单,不需要用git进行版本控制 所以我编写了这个脚本,称之为do thing.py。 在某个时刻,我决定做一些重构,或者做一些其他大的改变。我决定做一个备份,以防它不起作用,我想恢复。因此,我复制文件并将副本命名为dothing1-before big refactor.py 接下来,在某个时刻,我有一个文件夹,里面装满了脚本的各种旧快照: do-thing.py do-thing 1-befo

我经常会遇到以下情况:

我从一个应该是“小项目”(几乎总是一个单文件脚本)开始,然后决定这个项目足够简单,不需要用git进行版本控制

所以我编写了这个脚本,称之为
do thing.py
。 在某个时刻,我决定做一些重构,或者做一些其他大的改变。我决定做一个备份,以防它不起作用,我想恢复。因此,我复制文件并将副本命名为
dothing1-before big refactor.py

接下来,在某个时刻,我有一个文件夹,里面装满了脚本的各种旧快照:

do-thing.py
do-thing 1-before big refactor.py
do-thing 2-before changed function.py
do-thing 3-before alg change.py
其中从最早到最新的顺序是
做事情1-*.py
做事情2-*.py
做事情3-*.py
做事情.py
(尽管这个细节对这个问题并不重要)

此时(可能有3个以上的备份),我意识到这个项目比预期的要大,我应该从版本控制开始。不幸的是,只有在我陷入这种情况之后,我才意识到这一点

我想将一系列这样的文件转换成一系列git提交。我在过去手动完成了这项工作,但我想知道是否有任何现有的工具。理想情况下,它还将使用文件名作为提交消息

是否存在将文件版本转换为git历史记录的现有工具

在git pro的书中,年,有这样一句话:“质量导入器可用于许多其他系统,…甚至是一个档案目录。”这表明存在类似的工具,但他们没有提供任何参考

在靠近底部的同一部分中,他们给出了一个示例脚本,用于文件夹。我正在考虑为这个用例编写自己的git fast exporter,但我认为这个用例一定非常常见,所以我想在编写自己的用例之前先看看现有的选项


我在网上找不到任何东西,所以我在这里询问。您知道有任何工具可以进行此转换吗?

我不知道现有的工具,但我会制作一个简单的脚本,它将:

  • 创建空回购协议
  • 对于每个工作迭代
    • 创建一个“迭代-x”文件夹
    • 复制do-thing-x文件
    • 从该文件夹到新的回购协议
也就是说,对于每个迭代:

cd/path/to/new/repo
git--工作树=/path/to/do-thing-x add--忽略删除。
git提交-m“导入迭代x”
如前所述,对于一个文件来说,这是一种过度杀戮和缓慢的行为。

当然更简单。

我不知道现有的工具,但我会制作一个简单的脚本,它将:

  • 创建空回购协议
  • 对于每个工作迭代
    • 创建一个“迭代-x”文件夹
    • 复制do-thing-x文件
    • 从该文件夹到新的回购协议
也就是说,对于每个迭代:

cd/path/to/new/repo
git--工作树=/path/to/do-thing-x add--忽略删除。
git提交-m“导入迭代x”
如前所述,对于一个文件来说,这是一种过度杀戮和缓慢的行为。

当然更容易。

git快速导入
是导入过程中(至少是通常的)git端;它从标准输入中读取文本流(或者如果需要,主要是包含二进制的文本)。其他出口商编写相同的文本格式,这样你就可以将它们导入到
git fast import
(这不是答案,因为它主要是在Pro-git书的那一章末尾重新说明相同的内容。但是,如果你正在搜索现有的出口商,请查找*-fast export name。)再次您好,lol。是的,我熟悉快速导入。git书让人觉得好像有一些现有的工具可以从这样的文件中输出fast import规范。这就是我所追求的。
git快速导入
是导入过程(至少是通常的)git端;它从标准输入中读取文本流(或者如果需要,主要是包含二进制的文本)。其他出口商编写相同的文本格式,这样你就可以将它们导入到
git fast import
(这不是答案,因为它主要是在Pro-git书的那一章末尾重新说明相同的内容。但是,如果你正在搜索现有的出口商,请查找*-fast export name。)再次您好,lol。是的,我熟悉快速导入。git书让人觉得好像有一些现有的工具可以从这样的文件中输出fast import规范。这就是我所追求的。这听起来像是在更一般的情况下使用多个快照作为文件夹,正如我链接的git书籍章节中所讨论的。然而,在我的例子中,脚本可能会更简单,因为唯一可以将版本更改为版本的是单个
do thing.py
文件,我同意。同样的一般想法也适用于一个文件。这是一件非常次要的事情,但是您的脚本使用的是标准的git命令,例如,
git commit
。这很好,但是如果有很多修改,与一种方法相比,它可能会非常慢。然而,这是一个不必要的观点,因为这个脚本最多只能看到10个修订。我只是想提一下,以防有人有这个想法,但有大量的修改要分析。再说一次,您只需要运行一次,所以速度可能不是问题。这听起来像是在更一般的情况下使用多个快照作为文件夹,如git书籍第一章链接中所述。然而,在我的例子中,脚本可能会更简单,因为唯一可以将版本更改为版本的是单个
do thing.py
文件,我同意。同样的一般想法也适用于一个文件。这是一件非常次要的事情,但是您的脚本使用的是标准的git命令,例如,
git commit
。这很好,但我