Git 协作

入门预计上手 2-4 周

星团 基础

学习定位零前置,可直接入门→ Git 协作 →学完本技能可衔接的下游技能建设中

岗位需求

1 核心 · 0 加分

在职岗位将其列为技能要求

核心岗位薪资带

8k-15k

核心要求岗位的月薪区间

需求趋势

上升 0稳定 0收缩 1

核心要求岗位的趋势分布

面试题库

高频真题 · 参考答案随题展开
1. git merge 与 git rebase 有何区别?团队里如何选型?

merge 把两条分支的最新提交做一个三方合并,生成合并提交,历史呈真实网状,安全不改写既有提交,但长期小分支会让历史交错难读。rebase 把当前分支的提交摘下来依次重放到目标分支之后,得到线性整洁历史,但改写了提交哈希,已推送到共享分支的提交一旦 rebase 再强推会破坏他人历史。常见约定是个人特性分支拉取主干更新时用 rebase 保持自身线性,合入主干时用 merge 或压缩合并;绝不对多人共享分支 rebase。答题时提「变基黄金法则」与解决冲突时 rebase 需逐提交处理、merge 只需一次处理,能体现实操深度。

2. git pull 与 git fetch 有什么区别?

git fetch 只把远端的新提交与分支引用下载到本地远端跟踪分支(如 origin/main),不动工作区与本地分支,因此可以先 diff 审查再决定怎么合,是更安全的操作。git pull 等价于 fetch 之后立即执行一次 merge(默认),配置 pull.rebase 后则变为 fetch 加 rebase。差异的本质是「只同步引用」与「同步并合并到当前分支」。实践建议先 fetch 再 rebase 或 merge,避免 pull 带来的意外合并提交;CI 与脚本中应显式使用 fetch 以免工作区被改动。能讲清 refspec 与远端跟踪分支的对应关系是加分项。

3. HEAD 与分离头指针(detached HEAD)是什么?误操作后如何找回提交?

HEAD 是指向当前检出位置的符号引用,通常指向某个分支名,分支再指向最新提交,提交后分支随之前移。当 HEAD 直接指向某个提交哈希而非分支时就处于分离头指针状态,常见于检出历史提交、tag 或 rebase 中途;此时新提交不属于任何分支,切走后容易被垃圾回收。找回「丢失」提交的方法是用 git reflog 查看 HEAD 的移动轨迹,找到目标哈希后用 branch 或 cherry-pick 固化到分支。要点是理解 Git 的快照与引用模型:提交不可变、分支只是可移动指针,reflog 是本地后悔药。大 refactor 前建分支是最便宜的保险。

4. 如何高效解决合并冲突?冲突标记各段代表什么?

冲突文件中的标记将区域分为三段:HEAD 侧是当前分支的改动,中间分隔线,另一侧是被合入分支的改动,理解两边意图后手工决定保留或融合,删除标记后 git add 标记为已解决,最后继续 merge 或 rebase。高效实践包括:小步快跑频繁同步主干减少冲突面;先跑测试确认语义正确而非只求文本合并;用 git checkout --ours/--theirs 处理明确取某侧的文件;冲突复杂时用 mergetool 三方对比界面。rebase 冲突会逐个提交出现,可用 git rerere 记录解法让重复冲突自动复用。答题时强调冲突本质是三方合并中基线与两侧同时改动同一区域,Git 无法替你做语义决策。

5. cherry-pick、revert、reset 分别适用什么场景?

三者都涉及提交级操作但语义不同。cherry-pick 把任意提交复制应用到当前分支,生成新哈希,适合把修 bug 提交挑到发布分支或反向移植。revert 生成一个内容相反的新提交来撤销历史提交,历史向前演进,是共享分支上唯一安全的撤销方式,支持区间撤销。reset 移动分支指针到目标提交,配合 --soft 保留暂存、--mixed 保留工作区、--hard 全部丢弃,适合清理尚未共享的本地提交。核心判断标准是该提交是否已被他人获取:未推送可 reset,已共享必须 revert。混用强推与 reset 是协作大忌,能把边界讲清并通过 reflog 兜底即是好答案。

🔒 解锁完整面试题库与参考答案(Pro)

含高频追问与作答要点,系统准备面试。

官方文档

2 条

推荐教程

2 条

推荐课程

1 条

上手实践

1 条

🔒 完整前置链分析 + 逐岗位引用明细

本页已免费展示学习定位与市场聚合;Pro 深读补齐完整前置依赖链分析与逐岗位引用明细 (核心/加分与深度档、岗位画像)。

知识分享

社区经验 · 管理员审核后展示

暂无分享——第一个来聊聊你的经验和踩坑吧。

有经验想分享?登录后可提交你的知识分享,管理员审核通过后将署名展示。

难度档决定星等与难度分权重(入门 1 / 进阶 2 / 精通 3);学习资源由编辑部遴选并持续维护, 经验心得欢迎在上方「知识分享」区署名分享。