跳到正文
前端知识库
Git大法

Git大法 高频追问 Q&A

A: 协作分支优先 merge 保留历史;个人分支整理可用 rebase。(深入阅读:合并与变基、merge 与 rebase 选型)

2 分钟

Git大法 高频追问 Q&A

1. Q: mergerebase 怎么选?

A: 协作分支优先 merge 保留历史;个人分支整理可用 rebase。(深入阅读:合并与变基merge 与 rebase 选型

2. Q: revertreset 区别?

A: revert 追加反向提交更安全;reset 改写历史,慎用于共享分支。(深入阅读:resetrestorerevertreflog

3. Q: 冲突处理流程?

A: 解决冲突 -> git add -> git rebase --continuegit commit。(深入阅读:冲突的三个版本与解决策略

4. Q: 误删提交如何找回?

A: 先看 git reflog 找到历史指针再恢复。(深入阅读:resetrestorerevertreflog

5. Q: 常见提交规范?

A: 使用语义化提交(如 feat/fix/docs)提升可读性。(深入阅读:日常提交

6. Q: 如何定位是哪次提交引入了线上回归?

A: 先找一个可复现的测试命令和已知 good/bad 提交,再用 git bisect 二分验证;测试脚本返回值必须能区分通过、失败和环境错误,完成后执行 git bisect reset。(深入阅读:自动化 Bisect

7. Q: 如何删除一个已经提交的 commit?

A: 未共享历史可用交互式 rebase 的 drop;公共历史用 git revert 追加反向提交。不要为了“历史干净”直接重写他人已经使用的分支。(深入阅读:定位回归与移除提交

8. Q: 为什么不能直接修改 node_modules

A: 安装和 CI 重建会覆盖修改。应优先升级依赖;必须临时修复时提交可审计的 patch(如 patch-package 或包管理器 patch),并在依赖升级后删除它。(深入阅读:第三方 npm 包的可追溯修补