情况
- 在使用版本控制系统 (VCS) 之前,我一直在从事一个项目。
- 我曾经在取得进展时复制并粘贴整个项目,以保存我工作的“快照”,以便回顾历史。
- 从那时起,我已经转而使用版本控制系统来处理我最近的其他项目,因为使用“复制、粘贴 - 快照”方法已经成为一种巨大的空间浪费,而且实用性很差。
目标
我想创建一个正确表示开发阶段的存储库。
我的计划
- 创建一个新的存储库并使用最旧的快照文件夹对其进行初始化。
- 通过将旧文件夹替换为下一个更新的快照文件夹来进行提交,同时保留 stash 的
.git
文件夹。 - 重复第 2 步,直到使用最新的快照(即当前工作目录)更新 git。
问题
- 这是实现这一目标的可行方法吗?
- 如果是,我是否可以对这种方法进行任何改进?
- 如果不是,我应该怎么做?
附加信息
我愿意使用 GitHub 的客户端、Git Bash、git shell 或任何真正为了做到这一点的东西。我最习惯使用 GitHub 客户端软件,但更乐意学习其他方法。
扩展问题
如果我想要正确的日期,我应该通过环境变量 GIT_AUTHOR_DATE
和 GIT_COMMITTER_DATE
来更改它们(我不知道该怎么做),还是不值得麻烦吗?或者文件的元数据(属性)会在提交时维护此信息吗?这主要是出于美学原因(据我所知),因为无论如何我都会按时间顺序提交文件。
编辑:结果
我使用了“我的计划”中列出的步骤,结果非常完美。
最佳答案
恕我直言,您计划的方法很好。
当说用下一个更新的快照文件夹替换旧文件夹时,您需要注意您确实在替换:删除存储库中除.git
之外的所有内容。文件夹,然后添加下一个快照文件夹的内容。
如果您不这样做,您将不会正确地注意到快照之间的删除。
我不会玩GIT_AUTHOR_DATE
和 GIT_COMMITTER_DATE
除非您与特定日期的特定提交有关系(例如,您需要知道您网站的哪个版本在 01/01/2015 或类似日期上线)。
即使您需要将某个提交连接到某个状态,在这种情况下我也会选择一个标签(例如 git tag website_01_01_2015
)。
关于git - 如何从快照创建具有自己历史记录的 git 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31384354/