在线客服
扫描二维码
下载博学谷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并发工具类在AQS实现
众所周知,AQS是一个Java提高的底层同步工具类。本文就AQS的资源共享方式,state的作用,自定义同步器的方法,CountDownLatch,Semaphore,Semaphore和RateLimiter的区别,CyclicBarrier几方面来为大家浅析Java并发工具类。
6630
2019-08-05 20:07:43
Java垃圾回收器相关问题解答
相信很许多人在学习Java的时候,都没有搞清楚过Java垃圾回收器。因此本文主要讲述了Java垃圾回收器的定义、性能评估工具、回收算法等等内容,为大家全面解答垃圾回收器的相关问题。
4190
2019-08-20 15:55:44
零基础学Java免费视频课程分享
如今,想要转行学Java的零基础者是越来越多了。相信大多数的初学者在刚刚入门Java的时候,难免都会感到十分迷茫无从下手。要知道,Java作为一个经久不衰的编程语言,在备受程序员喜爱的同时,其学习难度和知识范围也不小。为了帮助大家可以更好更快的入门Java,博学谷特意推出了学Java的免费视频课程,希望可以帮助零基础的编程小白,少走一些弯路,快速入门Java的同时,也能找到自己的学习的大方向。
4721
2020-01-17 12:04:21
什么是Docker?Docker是如何工作的?
Docker作为一个开放源代码软件项目,其优势是体积小,运行速度快,因此掌握Docker技术是十分有必要的。想要搞清楚Docker的概念和工作原理,其实并不难,下面我们一起来简单聊聊Docker吧!
4159
2020-06-30 17:27:26
现在学Java编程开发好就业吗?
现在Java就业市场如何?如果从现在开始学习Java编程开发好就业吗?是不是真的如网上各种文章说的一样,Java开发工程师就业市场人才缺口非常大呢?其实在小编看来,现在的Java就业市场可以总结为两句话:就业机会多,但就业门槛正在不断提升!现在开始学习Java编程开发是否好就业,已经不仅仅是市场需求所决定的,更重要的是通过学习对知识的掌握的程度是否能够与企业招聘需求想匹配。
3355
2020-07-24 16:14:52