2026/5/18 15:34:57
网站建设
项目流程
局域网网站建设需要什么条件,天津企业网站制作公司,搜索引擎优化指南,最新不封网址拿走不谢一、Git 基础概念题
1.1 Git 基本概念
Q1: Git 和 SVN 的主要区别是什么#xff1f; Git - 分布式版本控制系统 - 每个开发者都有完整的代码仓库历史 - 支持离线操作#xff0c;本地提交 - 分支创建和合并非常快速 # SVN - 集中式版本控制系统 - 只有一个中央仓库 - 需要网…一、Git 基础概念题1.1 Git 基本概念Q1: Git 和 SVN 的主要区别是什么Git - 分布式版本控制系统 - 每个开发者都有完整的代码仓库历史 - 支持离线操作本地提交 - 分支创建和合并非常快速 # SVN - 集中式版本控制系统 - 只有一个中央仓库 - 需要网络连接进行大多数操作 - 分支操作较慢Q2: 什么是工作区、暂存区和版本库工作区Working Directory本地编辑的文件 暂存区Staging Area准备提交的文件快照 版本库Repository提交历史记录存储Q3: Git 的三种状态是什么- 已修改modified文件已修改但未暂存 - 已暂存staged文件已添加到暂存区 - 已提交committed文件已提交到版本库1.2 Git 配置相关Q4: 如何配置全局用户名和邮箱git config --global user.name 你的姓名 git config --global user.email 你的邮箱Q5: 查看当前 Git 配置的命令git config --list # 查看所有配置 git config user.name # 查看用户名 git config user.email # 查看邮箱二、Git 基本操作题2.1 仓库初始化与克隆Q6: 如何初始化一个新的 Git 仓库git init # 初始化新仓库 git init --bare # 初始化裸仓库服务器用Q7: 克隆仓库的几种方式git clone https://github.com/user/repo.git # HTTPS方式 git clone gitgithub.com:user/repo.git # SSH方式 git clone /path/to/repo # 本地路径2.2 文件操作命令Q8: 添加文件到暂存区的命令git add filename.txt # 添加特定文件 git add . # 添加所有修改文件 git add -A # 添加所有变化包括删除 git add -u # 只添加已跟踪文件的变化Q9: 提交代码的命令和选项git commit -m 提交信息 # 基本提交 git commit -am 提交信息 # 添加并提交已跟踪文件 git commit --amend # 修改最后一次提交Q10: 查看状态的命令git status # 查看工作区状态 git status -s # 简洁状态显示三、Git 分支管理题3.1 分支基础操作Q11: 分支相关的基本命令git branch # 查看本地分支 git branch -a # 查看所有分支包括远程 git branch new-branch # 创建新分支 git checkout branch-name # 切换分支 git switch branch-name # 新版本切换分支推荐 git checkout -b new-branch # 创建并切换分支Q12: 删除分支的命令git branch -d branch-name # 删除已合并的分支 git branch -D branch-name # 强制删除分支 git push origin --delete branch-name # 删除远程分支3.2 分支合并与变基Q13: merge 和 rebase 的区别# merge - 合并保留历史记录 git checkout main git merge feature-branch # 创建新的合并提交 # rebase - 变基线性历史 git checkout feature-branch git rebase main # 将特性分支变基到主分支Q14: 什么情况下使用 merge什么情况下使用 rebase使用 merge 当 - 公共分支如 main、develop - 需要保留完整合并历史 - 团队协作避免重写历史 使用 rebase 当 - 个人特性分支 - 希望保持线性历史 - 清理提交记录Q15: 解决冲突的步骤1. git status # 查看冲突文件 2. 编辑文件解决冲突, , 3. git add resolved-file # 标记冲突已解决 4. git commit # 完成合并四、Git 远程仓库题4.1 远程仓库操作Q16: 如何添加远程仓库git remote add origin https://github.com/user/repo.git git remote -v # 查看远程仓库 git remote show origin # 查看远程仓库详情Q17: 推送代码到远程仓库git push -u origin main # 首次推送并建立跟踪 git push # 后续推送 git push --force # 强制推送谨慎使用Q18: 拉取代码的几种方式git pull # 拉取并合并fetch merge git pull --rebase # 拉取并变基 git fetch # 只获取不合并 git fetch --prune # 获取并清理已删除的远程分支4.2 远程分支管理Q19: 如何跟踪远程分支git checkout -b local-branch origin/remote-branch git branch --set-upstream-toorigin/remote-branch local-branchQ20: 什么是 upstreamupstream 是本地分支跟踪的远程分支用于 - git pull/push 时知道操作哪个远程分支 - 简化分支操作命令五、Git 高级操作题5.1 撤销操作Q21: 如何撤销工作区的修改git checkout -- filename # 撤销单个文件修改 git restore filename # 新版本撤销修改 git checkout -- . # 撤销所有修改Q22: 如何撤销暂存区的文件git reset HEAD filename # 从暂存区移除文件 git restore --staged filename # 新版本命令Q23: 如何撤销提交git reset --soft HEAD~1 # 撤销提交但保留修改在暂存区 git reset --mixed HEAD~1 # 撤销提交修改保留在工作区 git reset --hard HEAD~1 # 彻底撤销提交和修改 git revert HEAD # 创建新的提交来撤销之前的提交5.2 历史记录操作Q24: 查看提交历史的命令git log # 查看提交历史 git log --oneline # 简洁显示 git log --graph # 图形化显示分支合并 git log -p # 显示具体修改内容 git log --since2023-01-01 # 按时间筛选Q25: 如何修改提交信息git commit --amend # 修改最后一次提交信息 git rebase -i HEAD~3 # 交互式变基修改多个提交六、Git 场景应用题6.1 团队协作场景Q26: 如何参与开源项目1. fork 原项目到自己的账户 2. git clone 自己fork的项目 3. 添加原项目为 upstreamgit remote add upstream 原项目URL 4. 创建特性分支进行开发 5. 推送到自己的fork仓库 6. 创建 Pull RequestQ27: 代码回滚的几种方式# 方式1revert推荐安全 git revert commit-hash # 创建新的提交来撤销 # 方式2reset危险会重写历史 git reset --hard commit-hash # 彻底回滚到指定提交 # 方式3通过新分支修复 git checkout -b fix-branch commit-hash6.2 故障处理场景Q28: 如何恢复误删的分支git reflog # 查看所有操作记录 git checkout -b new-branch commit-hash # 根据记录恢复Q29: 如何清理仓库历史git gc # 垃圾回收优化仓库 git prune # 清理不可达对象Q30: 大文件处理方案# 使用 Git LFSLarge File Storage git lfs install # 安装LFS git lfs track *.psd # 跟踪大文件类型 git add .gitattributes # 添加跟踪配置七、Git 原理深入题7.1 Git 内部原理Q31: Git 是如何存储数据的Git 核心对象 - blob 对象存储文件内容 - tree 对象存储目录结构 - commit 对象存储提交信息 - tag 对象存储标签信息 所有对象通过 SHA-1 哈希值唯一标识Q32: 什么是 .git 目录.git/ ├── HEAD # 当前分支引用 ├── config # 仓库配置 ├── objects/ # 所有Git对象 ├── refs/ # 分支和标签引用 └── index # 暂存区信息Q33: Git 的三种文件状态转换流程graph LR A[工作区] --|git add| B[暂存区] B --|git commit| C[版本库] C --|git checkout| A八、Git 工作流题8.1 常见工作流模式Q34: Git Flow 工作流是什么主要分支 - main主分支稳定版本 - develop开发分支 - feature/*特性分支 - release/*发布分支 - hotfix/*热修复分支Q35: GitHub Flow 的特点- 只有 main 分支是长期分支 - 每个特性都创建新分支 - 通过 Pull Request 进行代码审查 - 合并后立即部署Q36: GitLab Flow 的优势- 环境分支production、staging 等 - 发布分支与版本标签结合 - 更适合持续交付场景九、Git 实战编程题9.1 命令行操作题Q37: 请写出完成以下任务的命令序列# 1. 克隆仓库 git clone https://github.com/user/repo.git cd repo # 2. 创建并切换到新分支 git checkout -b feature-login # 3. 添加新文件并提交 echo login function login.py git add login.py git commit -m Add login functionality # 4. 推送到远程 git push -u origin feature-login # 5. 创建 Pull Request在GitHub界面操作Q38: 如何将多个提交合并为一个git rebase -i HEAD~3 # 在编辑器中将后两个提交标记为 squash # 保存后编辑最终的提交信息十、Git 最佳实践题10.1 提交规范Q39: 好的提交信息应该包含什么格式类型(范围): 主题 示例 feat(auth): add user login functionality fix(api): resolve null pointer exception docs(readme): update installation instructionsQ40: Git 使用的最佳实践1. 提交前先拉取最新代码 2. 保持提交的原子性一个功能一个提交 3. 编写清晰的提交信息 4. 定期推送代码到远程 5. 使用分支进行功能开发 6. 代码审查后再合并 7. 谨慎使用 --force 推送面试准备建议理论知识准备理解Git核心概念工作区、暂存区、版本库掌握分支管理merge vs rebase的区别熟悉远程操作push、pull、fetch的区别实践技能准备熟练使用命令行至少掌握30个常用命令解决冲突能力实际练习合并冲突解决工作流理解熟悉团队协作流程场景问题准备准备实际案例描述你使用Git解决的具体问题团队协作经验说明你在团队中的Git使用经验故障处理能力展示你解决Git问题的能力这份全面的Git面试题汇总涵盖了从基础到高级的所有重要知识点建议结合实际操作进行学习和准备。