Appearance
第13章:Git 新手面试题(基础版)
13.1 基础概念题(Git 定义、核心概念、与 SVN 区别等)
1. 什么是 Git?
答案:Git 是一个分布式版本控制系统,用于跟踪代码的变更,支持多人协作开发。
2. Git 的核心概念有哪些?
答案:
- 仓库(Repository):存储代码和版本历史的地方
- 提交(Commit):代码的一个快照
- 分支(Branch):代码的一个独立开发线
- 远程仓库(Remote):存储在网络上的仓库
- 工作区(Working Directory):本地编辑代码的目录
- 暂存区(Staging Area):临时存储待提交的修改
3. Git 与 SVN 的区别是什么?
答案:
- Git 是分布式的,SVN 是集中式的
- Git 存储的是完整的版本历史,SVN 存储的是变更差异
- Git 分支更轻量级,SVN 分支较重
- Git 支持离线操作,SVN 需要联网
- Git 的提交速度更快
4. 什么是版本控制系统?
答案:版本控制系统是一种用于跟踪文件变化的工具,它可以记录文件的历史变更,方便回滚到之前的版本,支持多人协作开发。
5. Git 的工作原理是什么?
答案:Git 采用快照的方式存储代码,每次提交都会创建一个完整的代码快照。它使用哈希值来唯一标识每个提交,通过引用(如分支、标签)来指向特定的提交。
13.2 核心命令题(常用命令用法、场景题)
1. 如何初始化一个新的 Git 仓库?
答案:
bash
git init2. 如何将文件添加到暂存区?
答案:
bash
# 添加单个文件
git add <文件名>
# 添加所有文件
git add .3. 如何提交代码到版本库?
答案:
bash
git commit -m "提交信息"4. 如何查看当前仓库状态?
答案:
bash
git status5. 如何查看提交历史?
答案:
bash
git log
# 查看简洁的提交历史
git log --oneline6. 如何创建并切换到新分支?
答案:
bash
git checkout -b <分支名>
# 或者使用 git switch
git switch -c <分支名>7. 如何合并分支?
答案:
bash
# 切换到目标分支
git checkout <目标分支>
# 合并源分支
git merge <源分支>8. 如何推送代码到远程仓库?
答案:
bash
git push origin <分支名>9. 如何拉取远程仓库的代码?
答案:
bash
git pull origin <分支名>10. 如何克隆远程仓库?
答案:
bash
git clone <远程仓库地址>13.3 实战场景题(合并冲突解决、版本回溯、团队协作流程等)
1. 如何解决合并冲突?
答案:
- 当 Git 提示冲突时,查看冲突文件
- 手动编辑冲突文件,删除冲突标记,保留需要的代码
- 执行
git add .标记冲突已解决 - 执行
git commit完成合并
2. 如何回滚到之前的版本?
答案:
bash
# 查看提交历史,找到要回滚的提交哈希值
git log --oneline
# 回滚到指定版本(保留修改)
git reset <提交哈希值>
# 回滚到指定版本(不保留修改)
git reset --hard <提交哈希值>3. 如何临时保存当前修改?
答案:
bash
# 保存当前修改
git stash
# 查看暂存列表
git stash list
# 恢复暂存
git stash pop4. 团队协作的基本流程是什么?
答案:
- 克隆远程仓库到本地
- 创建功能分支进行开发
- 提交代码到本地仓库
- 推送到远程分支
- 创建合并请求/PR
- 代码审查
- 合并到主分支
- 删除功能分支
5. 如何处理误提交的情况?
答案:
bash
# 撤销最近一次提交(保留修改)
git reset HEAD~1
# 撤销最近一次提交(不保留修改)
git reset --hard HEAD~1
# 如果已经推送到远程,需要强制推送
git push -f origin <分支名>13.4 面试技巧(新手如何准备 Git 面试,重点记忆点)
1. 准备重点
- 掌握 Git 核心概念:仓库、提交、分支、远程仓库等
- 熟悉常用命令:init、add、commit、push、pull、branch、merge 等
- 了解 Git 工作原理:快照存储、哈希值、引用等
- 掌握常见问题的解决方法:合并冲突、版本回滚、误操作挽救等
- 了解团队协作流程:分支管理、PR 流程等
2. 面试技巧
- 保持冷静,遇到不会的问题可以诚实承认,然后尝试思考
- 结合实际项目经验回答问题,展示自己的实践能力
- 对于命令相关的问题,可以边说边写出命令示例
- 展示自己的学习能力和解决问题的思路
- 了解一些 Git 最佳实践和规范
3. 重点记忆点
- Git 的三个区域:工作区、暂存区、版本库
- 常用命令的基本用法和参数
- 分支管理的基本流程
- 合并冲突的解决方法
- 版本回滚的不同方式及区别
- 团队协作的基本流程
通过准备这些面试题,你可以在面试中展示自己对 Git 的理解和使用能力,提高面试通过率。
