在线客服
扫描二维码
下载博学谷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开发程序员零基础入门学什么
转行Java开发程序员零基础入门学习,Java开发语言从诞生到现在发展已经有很多年了,网络非常多的关于Java学习路线图、Java培训视频等资源,如果想自学可以在网站找到很多的自学教程。零基础学Java有两种方法,自学和参加java培训机构。
10606
2019-08-14 18:00:27
Java8有什么变化?九大新特性
Java8有什么变化?本文将讲解Java8的九大新特性,它们分别是Java8Lambda 表达式、Java8方法引用、Java8函数式接口、Java8Nashorn JavaScript Java 8 默认方法、Java8Stream、Java8Optional 类、Java8日期时间API、Java8 Base64。
9580
2019-08-12 10:06:17
分布式和微服务是什么关系?
分布式和微服务是什么关系?简单来说,分布式和微服务的概念比较相似,分布式属于微服务。但是分布式和微服务在架构、作用和粒度上有所区别。因此,两者的关系是既相互联系又相互区别。本文主要带大家认识分布式和微服务,并探讨一下两者的关系,感兴趣的小伙伴可以接着看下去
20695
2019-11-01 16:02:32
WEB开发中安全漏洞的分析和预防
随着互联网技术的高速发展,网络安全日益成为大家关注的重点问题,而信息安全方面的人才更是就业市场上的稀缺资源。毫不夸张的说,目前信息安全已经上升到了国家战略的高度,企业对信息安全方面的人才更是求贤若渴。因此掌握安全漏洞的分析和预防是一项极为有用的技能,本文将和大家详细分享WEB开发中常见安全漏洞分析与预防策略。
6531
2020-01-14 11:36:34
Mybatis的核心组件是什么?
MyBatis是一个基于Java的持久层框架,所谓的持久层框架就是专门用来将数据进行持久化的框架,也就是说将数据存储到数据库中的框架。学习并掌握Mybatis,首先就要了解Mybatis的核心组件。下面我们一起来了解一下Mybatis四大核心组件:SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession以及SQL Mapper。
6872
2020-08-17 12:21:16
