0.前言
这里有一份Git的测试题,先把题目放出来,等看完git pro后,来把答案补上。
1.Git使用技能检测试卷
注:在没有明确说明的情况下,所有试题中的远程仓库别名均为 origin
- git branch 命令中,-d 和-D 参数的作用和区别是什?
- 如何添加工作区的变更到暂存区?包含新增,修改和删除的变更。
- 如何将一个新的远程分支 beta 更新到本地并正确的切换过去?
- 如何移除尚未添加到暂存区的新增文件及目录?
- git update-index 命令中–assume-unchanged 参数的作用是什么?如何取消该参数的效果?
- 对远程分支 beta 推送的删除命令应该是什么?
- 如何将本地分支 test 推送为远程分支 beta?
- 在 git 仓库中,origin 代表的是什么意思?如何改变它?
- 在规范中,我们应该如何命名特性、功能及 Bug 修复分支?
- 请用命令创建一支你的私有分支,并将其推送到服务器
- 私有分支应该如何合并到正式分支(如 master 或功能分支等)?为什么?合并过后的私 有分支还能继续进行开发吗?为什么?
- 最后一次提交中,你突然发现你少提交了一个文件 src/main/resources/log4j.properties, 但幸好你还没有推送到服务器仓库中,此时你该如何操作?
- 最后一次提交中,你突然发现你多提交了一个文件 src/main/resources/log4j.properties, 但幸好你还没有推送到服务器仓库中,此时你该如何操作?
- 如何将工作区的变更撤销,并与暂存区保持一致?如果只有一个文件 log4j.properties 需要撤销工作区的变更与暂存区保持一致,该如何操作?
- 如何将暂存区的变更撤销,但保留工作区的变更?
- 进度保存的命令是什么?在默认情况下,保存进度后,工作区的变更在吗?暂存区的变 更还在吗?如何变更不在了,那么应该如何执行保存命令使这种变更保留?如果变更还在,那么应该如何执行命令使这种变更不保留?
- 在默认情况下,还原保存的进度后,暂存区与工作区的变更内容是否会与保存前一样(假 设保存后工作区与暂存区没有任何变更)?
- 如何执行进度还原的命令,才能使保存的进度还原后,依旧存在于进度列表中?
- 操作系统重装后,应注意哪些地方可能导致 git 无法执行?或者导致工作区的变更列表 无故多出很多看起来没有变更过的文件?如何解决?
- 分支 beta 是从 master 创建的分支,之后 beta 分支上删除了文件 a.txt 文件,master 分 支上删除了 b.txt,最后又将 master 合并到了 beta 分支上,请问此时的 beta 分支上是否 还有 a.txt,是否还有 b.txt 文件?
- 在我们的规范中,执行 pull 命令相当于执行了哪些命令的组合?
- 在变基过程中,遇到了冲突,并解决了,之后应该执行什么命令?
- 在变基过程中,遇到了冲突,并解决失败了,想还原到变基前的状态,应该如何执行命 令?
- 在 pull 或者 merge 过程中,由于误操作,发生了未知的异常,正常情况下,应该如何操作?
- 如何将 John 的私有分支下载下来,并变更后提交为自己的私有分支?(假设 John 的私 有分支为 john/mybr1,你自己的私有分支为 jack/mybr1)
- 为什么要用压缩合并,压缩合并与正常合并的区别是什么?
- 如何查看远程仓库有哪些分支?
git 中的忽略配置文件是哪个?请说明下面的忽略配置代码每一行的作用
1
2
3/*.orig
*.class target/
!/target/ bin如何查看对当前仓库起效的所有 git 配置参数?
- 当发现在仓库的有效 git 配置参数中有一个你不需要的配置项 color.ui=true,该如何将其 删除?
- 你在有效的 git 配置参数中看到了两个一模一样的配置项 color.ui=true,为什么会有这样 的情况?如何可以将其中的一个配置删除?并正确删除应该删除的那个?
- 在仓库中有一个已有文件 lineaction.java,现在需要将其重命名为 LineAction.java,该如 何正确操作?
- 为什么我们的 git 仓库路径都很简短,如 git:goldpalm/v7.git?
- 一个本地仓库可以对应多个远程仓库吗?多个远程仓库在本地是如何区分的?
- 你的 ip 地址为 192.168.1.12,请使用一条命令为你电脑上 D:/workspace/目录中的 gp 项目搭建一个临时远程仓库,使别人能用 git://192.168.1.12/gp 地址 clone 到你的 gp 项目 代码
- 如下图为 master 的提交历史记录。
A -> B -> C -> D -> E -> ? -> F -> G
F 的父提交序号未知,如何通过 git show 命令来查看这个未知提交的详情? 现在需要取消 F 和 G 的两个变更提交,如何执行?此时 HEAD 和 master 分别指向哪个提 交?
在取消 F 和 G 之后,突然发现 F 提交是需要保留的,并不需要取消,该如何找回 F? 在找回 F 之后,需要将 F 和其父提交的变更合并为一个提交,该如何操作?