Git简介,Java开发岗笔试题

Git简介,Java开发岗笔试题,第1张

Git简介,Java开发岗笔试题

[](

)版本控制


在介绍Git之前,我们先了解一下什么是版本控制,具体可参考[版本控制](

)

[](

)Git概述


[](

)Git历史

同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,于是整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。

到 2005 年的时候,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux的缔造者 Linus Torvalds )不得不吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对新的系统订了若干目标:

• 速度

• 简单的设计

• 对非线性开发模式的强力支持(允许上千个并行开发的分支

• 完全分布式

• 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

[](

)Git是什么

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

官网地址为:https://git-scm.com/

[](

)Git特点

优点:

适合分布式开发,强调个体;

公共服务器压力和数据量都不会太大;

速度快、灵活;

任意两个开发者之间可以很容易的解决冲突;

离线工作。

缺点:

代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息;

权限控制不友好;如果需要对开发者限制各种权限的建议使用SVN。

[](

)Git与SVN的区别


SVN是集中式版本控制系统,而Git是分布式版本控制系统,Git与SVN的区别可参考[Git与SVN的区别](

)

[](

)Git工作流程


一般工作流程如下:

  1. 从远程仓库中克隆 Git 资源作为本地仓库;

  2. 从本地仓库中checkout代码然后进行代码修改;

  3. 在提交本地仓库前先将代码提交到暂存区;

  4. 提交修改,提交到本地仓库;本地仓库中保存修改的各个历史版本;

  5. 在需要和团队成员共享代码时,可以将修改代码push到远程仓库。

Git 的工作流程图如下:

[](

)Git的几个核心概念


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 免费领取

[](

)工作区、暂存区、版本库、远程仓库

Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。

Workspace: 工作区,就是你平时存放项目代码的地方

Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

[](

)分支

每次的提交Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里这个分支叫主分支,即master分支。HEAD指针严格来说不是指向提交,而是指向master,master才是指向提交的。

一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:

每次提交,master分支都会向前移动一步,这样随着不断提交,master分支的线也越来越长。

当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5079474.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-16
下一篇2022-11-16

发表评论

登录后才能评论

评论列表(0条)

    保存