cherry-pick 提交后组件报错,是不是代码冲突没处理好?
我从 feature 分支 cherry-pick 了一个提交到 main 分支,结果 React 组件直接报错了,说找不到状态变量。明明那个提交在原分支跑得好好的,难道是 cherry-pick 时漏了依赖的改动?
我试过手动对比两个分支的文件差异,但改动太多看花眼了。现在页面一加载就崩,控制台提示 Cannot read property ‘loading’ of undefined。
const MyComponent = () => {
const { loading, data } = useFetch('/api/items'); // 这行报错
return loading ? <Spinner /> : <List items={data} />;
};
useFetch这个 hook 根本没跟过来,或者 main 分支上的版本不一样。cherry-pick 只会拿你选的那个 commit,那 commit 里要是只改了组件没动 hook 的定义,那肯定炸。去原分支找一下
useFetch定义在哪个文件,看看 main 分支上有没有、版本一不一致。我之前也遇到过,cherry-pick 最坑的就是这种跨文件的隐式依赖,要么把定义 hook 的那个 commit 也一起 cherry-pick 过来,要么手动把 hook 补上。