如何从快照创建具有自己历史记录的git存储库?

时间:2015-07-13 13:11:07

标签: git github version-control snapshot revision-history

情况

  • 在我使用版本控制系统(VCS)之前,我有一个我一直在做的项目。
  • 为了保存"快照"我曾经在复制和粘贴整个项目。我的工作,以便有一个历史可以回顾。
  • 从那时起,我已经转而使用版本控制系统用于其他更近期的项目,例如使用"复制,粘贴 - 快照"方法已经成为一个巨大的空间浪费,并具有较差的实用性。

目标

我想创建一个正确代表开发阶段的存储库。

我的计划

  • 创建新存储库并使用最早的快照文件夹对其进行初始化。
  • 通过将旧文件夹替换为下一个更新的快照文件夹来进行提交,同时保留隐藏的.git文件夹。
  • 重复步骤2,直到使用最新的快照(即当前工作目录)更新git。

问题

  • 这是一种可行的方法吗?
  • 如果是,我可以对这种方法做出哪些改进?
  • 如果不是,我该怎么做?

其他信息

我愿意使用GitHub的客户端,Git Bash,git shell或其他任何东西来做到这一点。我对GitHub客户端软件感到非常满意,但我非常乐意学习其他方法。

扩展问题

如果我想要正确的日期,我应该通过环境变量GIT_AUTHOR_DATEGIT_COMMITTER_DATE(我不知道该怎么做)更改它们,还是不值得麻烦?或者文件的元数据(属性)在提交时是否会保留此信息?这主要是出于审美原因(据我所知),因为我总是以时间顺序提交文件。

编辑:结果

我使用了"我的计划"中列出的步骤。它完美地完成了。

1 个答案:

答案 0 :(得分:3)

恕我直言,您计划的方法很好。

当说用下一个更新的快照文件夹替换旧文件夹时,你需要注意你真正要更换:删除除.git文件夹以外的repo中的所有内容然后添加下一个快照文件夹的内容。

如果不这样做,您将不会注意到快照之间的删除。

我不会使用GIT_AUTHOR_DATEGIT_COMMITTER_DATE,除非您与特定日期有特定提交的关系(例如,您需要知道您的网站的哪个版本在01/01生效/ 2015或类似的东西)。

即使您需要将某个提交连接到某个状态,我也会在这种情况下使用标记(例如git tag website_01_01_2015)。