在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
随着疫情的好转,近期将迎来复工热潮,不少公司企业也纷纷开始了招聘。虽然说受疫情影响,招聘需求比起往年有了一定程度的减少,但是总体上来看互联网公司的技术岗位仍然处于人才紧缺的现状,因此大家更要抓住这次复工求职的机会,好好准备面试。本文为大家整理了Java面试必考的Git面试题,需要复习这部分知识点的朋友可以尝试着做一做。
1、“git pull”和“git fetch”有什么联系?
答案:归纳一下,git pull 是 git fetch + git merge。当你使用 pull,Git 会试着自动为你完成工作。它是上下文敏感的,所以 Git 会把所有拉取的提交合并到你当前处理的分支中。pull 则是自动合并提交而没有让你复查的过程。如果你没有细心管理你的分支,你可能会频繁遇到冲突。当你 fetch,Git 会收集目标分支中的所有不存在的提交,并将这些提交存储到本地仓库中。但Git 不会把这些提交合并到当前分支中。这种处理逻辑在当你需要保持仓库更新,在更新文件时又希望处理可能中断的事情时,这将非常实用。而将提交合并到主分支中,则该使用 merge。
2、forking的工作流程有哪些优点?
答案:它不是用单个服务端仓库充当“中央”代码库,而是为每个开发者提供自己的服务端库。forking工作流程最常用于公共开源项目中。Forking工作流程的主要优点是可以汇集提交贡献,又无需每个开发者提交到一个中央仓库中,从而实现干净的项目历史记录。开发者可以推送代码到自己的服务端仓库,而只有项目维护人员直接推送代码到官方仓库中。当开发者准备发布本地提交时,他们的提交会推送到自己的公共仓库中,而不是官方仓库中。然后他们向主仓库请求拉取(pull request),这会告知项目维护人员由可以集成的更新。
3、Git常用命令有哪些?
答案:git show # 显示某次提交的内容 git show $id
git add <file> # 将工作文件修改提交到本地暂存区
git rm <file> # 从版本库中删除文件
git reset <file> # 从暂存区恢复到工作文件
git reset HEAD^ # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
git diff <file> # 比较当前文件和暂存区文件差异 git diff
git log -p <file> # 查看每次详细修改内容的diff
git branch -r # 查看远程分支
git merge <branch> # 将branch分支合并到当前分支
git stash # 暂存
git stash pop #恢复最近一次的暂存
git pull # 抓取远程仓库所有分支更新并合并到本地
git push origin master # 将本地主分支推到远程主分支。
4、 什么是“git cherry-pick”?
答案:命令 git cherry-pick 通常用于把特定提交从存储仓库的一个分支引入到其他分支中。常见的用途是从维护的分支到开发分支进行向前或回滚提交。这与其他操作(例如:合并(merge)、变基(rebase))形成鲜明对比,后者通常是把许多提交应用到其他分支中。
5、 描述一下Gitflow 工作流程吗?
答案:Gitflow 工作流程使用两个并行的、长期运行的分支来记录项目的历史记录,分别是 master 和 develop 分支。Master,随时准备发布线上版本的分支,其所有内容都是经过全面测试和核准的(生产就绪)。Hotfix,维护或修复分支是用于给快速给生产版本修复打补丁的。修复分支很像发布分支和功能分支,除非它们是基于 master 而不是 develop 分支。Develop,是合并所有功能分支,并执行所有测试的分支。只有当所有内容都经过彻底检查和修复后,才能合并到 master 分支。Feature,每个功能都应留在自己的分支中开发,可以推送到 develop 分支作为功能分支的父分支。
6、 “git stash”在什么情况下使用 ?
答案:git stash 命令把你未提交的修改保存以供后续使用,以后就可以从工作副本中进行还原。
我们可以使用暂存(stash)的一个地方是,如果我们发现在上次提交中忘记了某些内容,并且已经开始在同一分支中处理下一个提交了:
7、 如何从 git 中删除文件,而不将其从文件系统中删除?
答案:如果你在 git add 过程中误操作,你最终会添加不想提交的文件。但是,git rm 则会把你的文件从你暂存区(索引)和文件系统(工作树)中删除,这可能不是你想要的。换成 git reset 操作:
git reset filename # or
echo filename >> .gitingore # add it to .gitignore to avoid re-adding it
上面意思是,git reset <paths> 是 git add <paths> 的逆操作。
8、Git 中 HEAD、工作树和索引之间的区别?
答案:该工作树/工作目录/工作空间是你看到和编辑的(源)文件的目录树。该索引/中转区(staging area)是个在 /.git/index,单一的、庞大的二进制文件,该文件列出了当前分支中所有文件的 SHA1 检验和、时间戳和文件名,它不是个带有文件副本的目录。HEAD是当前检出分支的最后一次提交的引用/指针。
以上就是Git面试题的全部整理,大家都会做吗?其实复工之后,求职面试的岗位竞争还是比较激烈的,因此更加要求求职者对面试做好更加充足的准备。相信机会都是留给有准备的人的,如果大家对于找工作还是没有多大把握,就多多充电提升自己吧!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java 12 / JDK 12 正式发布有哪些新特性
Java 12 / JDK 12 正式发布有哪些新特性?具体变化有Shenandoah:低暂停时间的 GC(实验性功能)、Microbenchmark Suite等内容。
7322
2019-08-14 10:32:28
String s = "Hello";s = s + " world!"码执行变化
String s = "Hello";s = s + " world!";这两行代码执行后原始的 String 对象中的内容变了吗? 没有。因为 String 被设计成不可变(immutable)类,所以它所有对象都是不可变对象。在这段代码中,s 原先指向一个 String 对象,内容是 "Hello",然后我们对 s 进行了+操作。
8680
2019-05-24 16:23:20
Java核心技术汇总 Java开发必备技术
Java核心技术汇总 Java开发必备技术,Java工程师需要掌握JVM相关、Java的运行、数据类型、对象和实例、访问控制、流程控制、面向对象编程的概念、基础知识点、集合框架、异常框架等相关知识。
3668
2020-05-19 16:36:19
Java内存模型JMM基础知识及原理
Java内存模型JMM基础知识及原理,学习过程中需要了解内存模型抽象结构、共享变量、JMM抽象结构模型、主内存与工作内存的相关知识,Java内存模型具有原子性、可见性、有序性三大特征。
3956
2020-07-27 11:58:33
Java学多久可以自己做游戏?开发大型游戏?
掌握图片、绘制、事件做游戏相关的知识点就可以用Java做小游戏了,但大型游戏基本没有用Java做开发的,不少人都说Java不适合做游戏。Java 在游戏方面没有形成完善的生态,一般是Unity 开发的对标游戏引擎,Unity3D不支持Java,Unreal3D也不支持Java。
7064
2020-09-17 10:46:22