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