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

标签 git github version-control snapshot revision-history

情况

  • 在使用版本控制系统 (VCS) 之前,我一直在从事一个项目。
  • 我曾经在取得进展时复制并粘贴整个项目,以保存我工作的“快照”,以便回顾历史。
  • 从那时起,我已经转而使用版本控制系统来处理我最近的其他项目,因为使用“复制、粘贴 - 快照”方法已经成为一种巨大的空间浪费,而且实用性很差。

目标

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

我的计划

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

问题

  • 这是实现这一目标的可行方法吗?
  • 如果是,我是否可以对这种方法进行任何改进?
  • 如果不是,我应该怎么做?

附加信息

我愿意使用 GitHub 的客户端、Git Bash、git shell 或任何真正为了做到这一点的东西。我最习惯使用 GitHub 客户端软件,但更乐意学习其他方法。

扩展问题

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

编辑:结果

我使用了“我的计划”中列出的步骤,结果非常完美。

最佳答案

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

当说用下一个更新的快照文件夹替换旧文件夹时,您需要注意您确实在替换:删除存储库中除.git 之外的所有内容。文件夹,然后添加下一个快照文件夹的内容。

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

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

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

关于git - 如何从快照创建具有自己历史记录的 git 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31384354/

相关文章:

git - git中有分支历史吗?

svn - 解决svn中的属性冲突

git - 将提交从一个分支移动到另一个分支,然后将它们 merge 回去

android-studio - 如何开始处理 GitHub 上的先前提交

svn - 在哪里管理您在版本控制下的最敏感内容?

git - 如何更改 GitHub 中发布的目标分支?

GitHub repo 灰色文件夹

windows - Git clone/pull 持续卡住在 "Store key in cache?"

Git post-receive - 如何检查推送的分支是否与主分支 merge

git - 将参数传递给 git post-receive Hook