javascript - 将现有项目重构为新的 vue-cli 创建的项目时如何保留 Git 提交历史记录?

标签 javascript git typescript vue.js

所以,我有一个用 Vuevue-cli 创建的项目,我想重构它。我想在其中实现 Typescript,建议使用 Vue CLI 3 开始一个新项目.

如果好奇的话,这是我项目的 repo 协议(protocol):https://github.com/kamatheuska/portafolio-client

我的问题是,如果我开始一个新项目,我将无法跟踪项目的提交历史记录。我想尽可能多地保留我的 git 提交历史和元数据。

我要做的第一件事是:

vue create refactored-project

然后将其设置为使用 Typescript 构建。现在如何将 Git 提交历史记录 或类似内容从旧项目移动到这个项目,我不知道。感谢您的帮助!

最佳答案

如果您打算从头开始重写所有内容,那么彻底中断并归档旧的 repo 没有错。

不过,我猜您会希望保留大部分业务逻辑并将文件移动/复制到结构中的新位置,并希望保留历史记录以帮助弄清楚为什么以特定方式完成某些事情。

最简单的解决方案是将所有 当前文件移动到一个“旧”文件夹,并在同一存储库中启动新项目。当您实现新功能时删除重构的旧文件,不要试图同时保持两个项目处于事件状态,这就是分支和旧提交的目的。如果你对此一丝不苟,你会得到一个“进度条”,表明你离完成重构还有多远:当“旧”文件夹为空时,所有内容都已在新结构中实现。

当你复制大部分文件时,git 会做一个合理的检测工作并提供连贯的代码历史。


有一个更复杂的解决方案:git 允许你有多个源根目录。不过,这主要是为了 merge 两个现有项目,在这里并不适用。

关于javascript - 将现有项目重构为新的 vue-cli 创建的项目时如何保留 Git 提交历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54145073/

相关文章:

php - 替代 $_GET

git 接收包 : command not found in Windows

javascript - 加载带有 Bootstrap 模式的ajax页面,并立即自动启动该模式

javascript - 如何在 Firefox 的 JS 中不传递事件的情况下获取键码值?

javascript - Highcharts条形图x轴不一致行为

git - 在 git 中是否可以一个一个地推送提交而不是一次推送所有提交?

git - 无法在Docker快速入门终端中克隆git存储库-无法创建工作树目录 'node-bulletin-board':权限被拒绝

node.js - 如何在 typescript 和 ts-jest 中调试测试?

typescript - angular2中viewChild如何获取用js添加的元素?

typescript - 我们可以在 typescript 中访问另一个类中的私有(private)变量吗