这周把之前吃灰的一个项目模板工具挖了出来,这个工具主打使用模板生成项目后,项目能随模板更新而更新。之前采用的是纯配置+生成的模式,生成的文件不能手动修改,否则下次更新会被覆盖。配置很痛苦,也没找到什么很好的办法解决,直到前几天同事说要不要用 magicspace 生成新项目,然后突然来了灵感,用 Git 相关机制解决。翻了一天 Git 命令,摸通了一套操作过程。原理其实很简单,模板生成内容可以看作是项目内容的一个 orphan branch,第一次合并到项目分支后,就和项目分支建立了某种神秘的连接,后续更新就是在这个 orphan branch 上新加一个 commit,再合并回项目分支。这里有个很巧妙的地方,由于分支合并后,模板生成更新的 commit 会保留在项目分支信息中,所以并不需要真的去保留一个 orphan branch,只要在更新时找到相关 commit 进行 checkout 即可,这样也避免用户忘记推对应的分支到远程仓库中。
展开
评论