【10】进大厂必须掌握的面试题-版本控制面试

Q1。什么是版本控制

这可能是您在面试中最容易遇到的问题。我的建议是首先给出版本控制的定义。它是一个记录一段时间内对一个文件或一组文件的更改的系统,以便您以后可以调用特定版本。版本控制系统由一个中央共享存储库组成,同事可以在其中对文件或文件集进行更改。然后,您可以提及版本控制的用途。

版本控制可让您:

将文件还原到以前的状态。

将整个项目还原到以前的状态。

比较随时间的变化。

查看谁最后修改了可能导致问题的内容。

谁修改了问题,何时修改了。

Q2。使用版本控制有什么好处?

我建议您包括以下版本控制优点:

使用版本控制系统(VCS),允许所有团队成员随时自由处理任何文件。VCS稍后将允许您将所有更改合并到一个通用版本中。

所有过去的版本和变体都整齐地包装在VCS中。在需要时,您可以随时获取任何版本,并且手边将有完整项目的快照。

每次保存项目的新版本时,VCS都要求您提供更改内容的简短描述。此外,您可以看到文件内容中的确切更改。这使您可以知道谁在项目中进行了哪些更改。

像Git这样的分布式VCS允许所有团队成员拥有完整的项目历史记录,因此,如果中央服务器出现故障,则可以使用任何队友的本地Git存储库。

Q3。在团队中分支是怎么用的。

询问这个问题是为了测试您的分支经验,因此请告诉他们您在上一份工作中使用分支的方式以及该分支的目的是什么,您可以参考以下几点:

特征分支
特征分支模型将特定特征的所有更改保留在分支内。对功能进行全面测试并通过自动测试验证后,该分支将合并到主服务器中。

任务分支
在此模型中,每个任务都是在自己的分支上实现的,任务名称包含在分支名称中。很容易看到哪个代码实现了哪个任务,只需在分支名称中查找任务键即可。

发布分支
一旦开发分支获得了足够的发布功能,就可以克隆该分支以形成发布分支。创建此分支将开始下一个发行周期,因此此刻之后不能添加任何新功能,该分支中仅应包含错误修复,文档生成以及其他面向发行版的任务。一旦准备好发布,该发行版将合并到主版本中并标记一个版本号。此外,应该将其合并回developer分支,该分支可能从发行版开始就已经进行了。

最后告诉面试官,分支策略在一个组织之间会有所不同,所以我知道基本的分支操作,例如删除,合并,签出分支等。

Q4。您喜欢哪种VCS工具?

您可以仅提到您曾经使用过的VCS工具:“我从事过Git,与SVN等其他VCS工具相比,它具有一个主要优势是它是一个分布式版本控制系统。”
分布式VCS工具不一定依赖中央服务器来存储项目文件的所有版本。相反,每个开发人员都“克隆”存储库的副本,并在其自己的硬盘上拥有项目的完整历史记录。

Q5。什么是Git?

我建议您先解释一下git的体系结构,以尝试这个问题,如下图所示。您可以参考以下说明:

Git是一个分布式版本控制系统(DVCS)。它可以跟踪对文件的更改,并允许您还原到任何特定的更改。

它的分布式体系结构提供了优于其他版本控制系统(VCS)的优势,例如SVN,其中一个主要优点是它不依赖中央服务器来存储项目文件的所有版本。相反,每个开发人员都会“克隆”我在下图中显示的资源库的副本和“本地资源库”,并在其硬盘驱动器上具有项目的完整历史记录,以便在服务器发生故障时恢复所需的一切。是您队友的本地Git存储库之一。

还有一个中央云存储库,开发人员可以在其中提交更改并与其他队友共享,如您在图中看到的,所有协作者都在提交更改“远程存储库”。

git Architecture-devops面试问题

Q6。解释一些基本的Git命令?

以下是一些基本的Git命令:

git命令-devops面试问题

Q7。在Git中,如何还原已经被推送并公开的提交?

这个问题可能有两个答案,因此请确保同时包括这两个原因,因为根据情况,可以使用以下任一选项:

在新的提交中删除或修复错误的文件,然后将其推送到远程存储库。这是修复错误的最自然的方法。对文件进行必要的更改后,将其提交到远程存储库,因为我将使用
git commit -m“ commit message”

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxzwx.html