在线客服
扫描二维码
下载博学谷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开发运算符&和&&的区别是什么?
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为 true 时,整个运算结果才为 true
13746
2019-05-23 11:10:34
学Java有什么用?能做哪些开发的岗位?
学Java有什么用?能做哪些开发的岗位?Java的应用场景十分广泛,毫不夸张的说,当下的互联网已经离不开Java语言了。按照不同的用途,Java在Android应用、服务器程序、网站领域、软件工具、交易系统、J2ME系统、嵌入式领域等等方面,发挥了重要作用。因此只要学好Java,大家再也不用担心能做的开发岗位被限制了。
7012
2019-10-29 11:01:11
零基础学习Java很难吗?主要难点在哪里?
相对于大部分传统职业来讲,互联网要更加开放,绝大部分技术岗位都可以通过学习或者培训获得入行的门槛。Java开发在互联网技术岗位招聘中所占的市场份额是有目共睹的。每年都有很多专业的高校毕业生进入Java开发领域,但依旧无法达到市场招聘的需求。因此大量零基础的同学也选择通过学习和培训进入Java开发这个高薪岗位。那零基础学习Java难吗?主要难点在哪里呢?
7005
2019-10-31 18:40:13
html5和Java发展前景如何?
目前,许多想要学习IT技术的朋友都在考虑这样一个问题,html5和Java发展前景如何?简单来讲,html5是新兴的前端开发技术,发展前景自不必多说。而Java是老牌的后端开发语言,一直以来都备受程序员的青睐和追捧,就业岗位的选择也十分广泛。要想知道html5和Java发展前景,我们下面来详细分析一下。
5957
2020-06-15 17:05:43
高并发下的架构解决方案附案列讲解
众所周知,互联网分布式系统架构设计必须考虑高并发,高并发也是开发者常常会面临的一个技术难题。如何控制库存避免超卖?怎么实现线程间数据处理的同步?本文将以红包雨系统业务为例,为大家详细阐述业务痛点和系统设计的方法,帮助大家梳理解决问题的思路,构建系统思维的能力。
9523
2020-07-15 18:32:55
