Git Blame 为什么显示的不是我修改的那行代码?
我用 git blame 查看某行代码是谁改的,结果发现显示的是几个月前的提交,但明明是我昨天重构时改过这行啊?是不是因为 rebase 或者合并导致历史记录混乱了?
比如这段 React 组件里的逻辑,我昨天把 handleClick 里的逻辑重写了,但 blame 还是指向老提交:
const Button = ({ onClick }) => {
const handleClick = () => {
// 之前是直接调用 props.onClick()
// 我改成加了防抖和日志
console.log('clicked');
onClick?.();
};
return <button onClick={handleClick}>Click me</button>;
};
我试过 git blame -L 10,10 src/Button.jsx,结果还是旧作者。难道 Git 没检测到内容变化?
git blame -w来忽略空白字符的变化,或者git blame -b来忽略空白行的变化,这样应该能正确显示你修改的那一行。如果还不行,可能需要检查是否有其他合并或 rebase 操作影响了历史记录。试试加几个参数:
-w忽略空白符变化,-M检测文件内移动,-C检测跨文件移动。如果这样还不行,可以用git log --oneline -p手动查一下这个文件的修改历史,看看是不是有 merge 或者 rebase 把你的提交覆盖了。