git - 如何将简单的非源代码控制的项目备份转换为版本化的 git 存储库?

标签 git version-control

我一直很调皮。我开发一个软件(我是唯一的开发人员)已经有一段时间了(好吧,这已经过去几年了),但没有使用任何类型的源代码控制。

我已经决定从现在开始使用源代码控制(git 似乎是最有可能的,因为 Windows 工具在过去几个月里似乎出现了很多)。我所拥有的是我的 (.NET) 解决方案的整个目录的日期备份。

我想做的是自动在修订历史记录中显示我的备份。会很乱。项目和文件将在解决方案历史记录过程中添加/删除。我并不担心这样的问题,例如我所知道的重命名文件被解释为删除一个文件并添加一个新的、不相关的文件。

更一般地说,我的问题是:我有时间订购了一个不断变化的目录的副本。我认为将第一个导入 git 很容易。但是,然后我希望目录的所有后续副本按日期顺序一次 merge 一个,而不必单独提交每个子目录和文件。

这可能吗,还是只是因为我从一开始就没有使用源代码控制而受到惩罚?

编辑:如果我继续手动使用“单独提交所有快照”方法(少于 20 个快照),是否有一种方法(正如 Esko Luontola 建议我可能想要的那样)用日期覆盖提交日期我有快照。 git commit 似乎没有允许这样做的标志。还有其他方法吗(我使用的是 Vista)?

编辑:在回答我使用原始日期的问题时:您必须设置 GIT_AUTHOR_DATE 和/或 GIT_COMMITER_DATE 环境变量以在执行提交时覆盖当前日期和时间的使用。

之所以有两组变量(也有 GIT_(AUTHOR|COMMITER)_(NAME|DATE|EMAIL))是为了区分发送补丁的作者和实际维护者将提交提交到 repo 协议(protocol)中。

如果在 VS 上使用 git 扩展请注意:如果您使用“git bash”命令行设置(export varname="value")这些变量,然后切换回 GUI 进行提交,它似乎会忽略它们.您必须留在命令行上并从那里运行“git commit”。

最佳答案

您可以使用示例 git-fast-import基于 git.git 存储库中分发的工具:import-zips.py (在 Python 中)import-tars.perl (在Perl),或使用这些脚本作为您自己的导入脚本的基础。您可以在 contrib/fast-import/ 中找到这些脚本目录。

关于git - 如何将简单的非源代码控制的项目备份转换为版本化的 git 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/748778/

相关文章:

android - 在 Android Studio 的编辑器左侧显示 git 更改

.net - .Net 人员的源代码管理

git - 更改现有子模块的分支

git - 如何在没有项目名称的情况下指定目标目录进行 git clone?

git - 克隆停留在检查源

git - 我如何从 CVS 存储库中 git-cvsimport 多个模块,具有不同的分支?

xcode - 如何使 Xcode 项目源文件与文件系统目录保持同步?

git - 使用 git clone 时如何修复 'The project you were looking for could not be found'

Git fatal error : Reference has invalid format: 'refs/heads/master

version-control - Pharo - 如何在版本控制中共享静态资源?