Git是一款强大的分布式版本控制系统,广泛应用于软件开发中以管理和跟踪代码的变化。在这份关于Git常用命令的面试题汇总中,包含了60道题目,旨在帮助开发者巩固和理解Git的基本操作和高级功能。以下是部分关键知识点:
1. **全局配置与本地配置**:
- `git config --global user.name` 和 `git config --global user.email`:设置全球默认的用户名和邮箱,用于在提交时标识作者。
- `git config --local user.name` 和 `git config --local user.email`:针对当前仓库进行个性化的配置。
- `git config --global --list` 和 `git config --local --list`:查看全局或本地的配置列表。
2. **文件状态管理**:
- `git status`:检查工作区和暂存区的文件状态,了解哪些文件已更改、新增或删除。
- `git add [file1, file2, ...]`:将指定文件或目录添加到暂存区,准备提交。
- `git add .` 或 `git add -A`:添加所有变更,包括未跟踪的文件。
3. **差异查看**:
- `git diff`:比较工作区与暂存区或HEAD的差异。
- `git diff --cached`:查看暂存区与HEAD的差异。
- `git diff HEAD [file]`:对比特定文件的暂存区和HEAD状态。
4. **提交与撤销**:
- `git commit`:创建一个新的提交,记录当前暂存区的变更。
- `git checkout [file]`:恢复文件到暂存区状态。
- `git reset [file]`:将文件恢复到HEAD状态,有软重置(保持暂存区不变)、混合重置(暂存区变回工作区)和硬重置(两者都变回HEAD)三种模式。
- `git reset --hard`:快速撤销所有变更,使工作区和暂存区与HEAD一致。
5. **版本比较与合并工具**:
- `git difftool`:使用外部比对工具(如vimdiff、kdiff3等)比较两个提交的差异。
6. **未被Git管理的文件**:
- `git ls-files --others`:列出工作区中的所有非Git跟踪文件。
7. **暂存区与stash管理**:
- `git stash`:将当前未提交的变更暂存起来,以便于临时保存工作。
- `git stash pop` 和 `git stash apply`:恢复stash中的变更并丢弃或应用。
8. **辅助命令**:
- `git stash list`:查看所有stash的历史记录。
这份面试题集合不仅适合老手回顾和巩固技能,也为初学者提供了系统的学习路径,从基本操作到更深入的管理技巧,帮助他们在实际开发环境中更加高效地使用Git。通过掌握这些命令,开发者能够更好地维护代码版本,协作开发,以及解决常见的版本控制问题。