Chandlery

获取更新

你的购买包含今后每一个版本。这里是把更新拉下来的方法。

你的项目和脚手架共享同一条 git 历史,所以更新就是一次普通的合并。你的东西永远不会 被悄悄覆盖。

一次性设置

你的项目需要知道更新从哪里来。用你购买时拿到的仓库地址,运行一次:

git remote add upstream <脚手架仓库地>

如果你一开始就是 clone 那个仓库的,它可能已经被设成 origin 了。把它改个名, 让 upstream 明确表示「脚手架」:

git remote rename origin upstream

看看有什么可更新的

pnpm update-starter check

这条命令什么都不会改。它会告诉你有多少个新版本、它们动了哪些地方,以及 —— 这才是有用的部分 —— 其中哪些文件你自己也改过。只有那些地方需要你做选择。

注意是 update-starter,不是 update

pnpm update 是 pnpm 自带的依赖升级命令,跟这件事完全无关 —— 敲错了它会去升级 几百个依赖包,而且不会回答你任何问题。

应用更新

pnpm update-starter apply

先把你自己的改动提交掉,否则这条命令会拒绝执行。跑完之后,确认项目还能正常运行:

pnpm install && pnpm typecheck && pnpm test && pnpm dev

它说有冲突的时候

冲突不是问题,也不是你做错了什么。 它的意思是:同一个文件你改过、我们也改过, git 不愿意替你猜你想要哪一版。

最快的处理方式是直接交给你的助手:

带我过一遍这个项目里的每一处合并冲突。每一处都用大白话告诉我:我改了什么、 更新改了什么、该保留哪一个或者怎么合起来。然后按我的选择改好。

在你提交之前的任何时候,都可以彻底退回去:

git merge --abort

什么都不会丢。你想什么时候再试都行。

怎样少遇到冲突

冲突只会发生在双方都改过的文件里。

  • 尽量新增,而不是改写。 新加一个页面或组件永远不会冲突;重写一个自带的就可能会。
  • 不要手改生成的文件。 它们会被重新生成,改了每次都冲突。
  • 勤更新。 十次小更新,比攒一年之后来一次容易得多。