网易首页 > 网易号 > 正文 申请入驻

Git 的介绍、安装及其基本操作

0
分享至

一、Git的基本介绍

1、什么是Git

Git是目前世界上最先进的分布式版本控制系统(没有之一),是程序员在公司工作必须具备的技能。

Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。

Git易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion、CVS、Perforce和 ClearCase等版本控制工具。

2、什么是版本控制

版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制最重要的功能是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。

用最贴近我们的一个例子来理解,当我们在写毕业论文的时候,一般来说都会经过十几次修改才会达到导师的要求,然而在修改的过程中,我们并不知道下一次修改是否会比原论文优秀,有可能经过我们修改的反而更差,所以,我们一般不会直接在原论文上进行修改,而是会新建一个副本,对副本进行操作,到最后我们会发现,完成一篇毕业论文我们会写十几个甚至是几十个.docx文件,这就是版本控制的思想。

我们知道,在公司中,一个项目通常是由一个团队来协作开发的,就比如一个项目由小红、小花、小李、小美四个人组成的团队来合作开发,有一天,小红完成了项目的一个小功能,并把它上传到了公司服务器上,但是小花觉得这个功能中的一部分代码可以优化,于是她从服务器上下载了小红的代码并对其进行修改,同时小李也从服务器上下载了该代码进行优化,那么这时候就会发生两个问题:第一,修改完成上传后,小李修改后的代码会直接覆盖掉小花修改的代码,导致小花的努力白费;第二:小李修改后发现代码出现了一个bug,想要退回到小红完成的代码版本,但是这时候小红的代码已经被覆盖掉回不去了;上面这种情况在公司项目开发的过程中是十分普遍的;所以,我们需要一个能够记录代码变化的版本控制工具来帮助我们管理代码。

3、版本控制工具的分类

版本控制工具可以分为两类:分布式版本控制工具和集中式版本控制工具。

集中式版本控制工具:

常见的集中式版本控制工具:CVS、SVN(Subversion)、VSs。
集中化的版本控制系统诸如CVS、SVN等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。
这种方式的好处是每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限(安全),并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。
坏是中央服务器的单点故障,如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。-

分布式版本控制工具:

常见的集中式版本控制工具:Git、 Mercurial、Bazaar、Darcs。
像Git这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。
分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:
1.服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的);
2.每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全);
现在,大多数企业用的都是分布式版本控制,但是也有的企业用的是集中式版本控制。

4、Git的发展历史

我们知道,Linus在1991年创建了开源的Linux,Linux创建之后,吸引了全世界众多的程序员和操作系统爱好者参与到Linux的完善和壮大中来,那么,这么多人在世界各地为Linux编写代码,这些Linux的代码该如何管理呢?

事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码。

你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。

不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。

但是在2005年的时候,开发Samba的Andrew试图破解BitKeeper的协议,被BitMover公司发现了,于是BitMover公司为了自己的公司利益,收回了Linux社区的免费使用权。

于是Linus花了两周时间自己用C语言写了一个分布式版本控制系统,也就是Git,一个月之后,Linux系统的源码已经全部由Git管理了。(什么是大神啊!)

Git由于其Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

最后,让我们来瞻仰一下大神的容貌:

二、Git的安装

我们可以直接通过Git官网进行安装 Git官网链接:Git (Git)

但是我们发现,直接通过Git官网下载的话非常慢,速度只有几十KB每秒,所以我们一般会通过国内的镜像网站,比如阿里的淘宝,来进行下载(当然会翻墙另说)

找到里面的最新版本,然后根据自己的电脑位数选择对应安装包。

把安装包下载好之后,我们双击运行.exe文件进行安装,在安装过程中我们只需要改动一个地方,即软件的安装路径就可以了,把软件放在自己想要的路径下面,比如我就是放在D盘下的software的Git文件夹内,其余的地方无脑下一步即可。Git安装完毕后,我们在任意位置单击鼠标右键,只要出现了Git Bush Here和Git GUI Here两个选项就说明安装成功了,在Git Bash Here中输入"git --version" 可以查看当前Git版本。

三、Git的基本使用

1、Git的工作机制

Git可分为三个区域:工作区、暂存区以及本地库。

工作区:指代码所在的文件夹,我们可以通过 “git add” 命名把工作区里的代码添加到暂存区里,使得该文件被git追踪。

暂存区:用来临时存储代码,我们可以通过 “git commit” 命名把暂存区里的代码提交到本地库里,从而生成对应的历史版本。

注:一旦把代码提交到本地库,那么代码的历史记录就会永久存在,不能被删除,即使你把代码从V1版本更新到了V2版本,然后重新add

commit,仍然是可以重从V2版本退回到V1版本的,所以骂老板的话尽量不要commit到本地库,否则就只能删库跑路了(doge)。

添加图片注释,不超过 140 字(可选)

2、Git常用命令

Tips:Git的语法和Linux是一样的,所以我们在输入Git命名的时候,只需要输入前几个字母,然后双击table键,系统就会自动补全命名。

2.1、设置用户签名

用户签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户签名,否则无法提交代码。(注意:这里设置用户签名和将来登录GitHub(或其他代码托管中心)的账号没有任何关系)

我们可以在Windows的家目录下找到.gitconfig配置文件,里面就保存着刚才设置的用户签名。

2.2、初始化本地库

在你管理Git的文件夹下打开Git Bash Here,然后执行 “git init” 命名,此时就会出现一个.git文件夹,这代表初始化成功。(注:.git默认是隐藏的,需要把隐藏文件打开才能看到)

2.3、查看本地库状态

在Git的管理目录下,输入 “git status” 可以查看本地库状态。第一行代表你目前所处的分支,第二行代表你提交的次数,第三行代表你需要提交的文件。

当我们在Git-Space目录下新建文件,并在文件中写入内容后,本地库状态就会随之发生改变。

2.4、添加暂存区

添加暂存区,就是把代码通过 “git add” 命名添加到暂存区里面,使得代码被git追踪。

指令形式:git add 文件名

我以我临时写的一份代码为例,我的测试代码存放路径是 “e->code_2022->c.code->git_test”,我的Git管理路径是 “e->Git-Space”,现在我们要把git_test添加到暂存区里面,需要两步:

  1. 把git_test复制到Git-Space文件夹内。
  2. 在Git-Space文件夹内打开Git Bush Here,执行 “git commit git_test” 命名。

图示:注:这里可能会出现一个 The LF will be replaced by CRLF,不用在意。

在代码成功提交到暂存区后,我们也可以通过 “git rm --cached git_test” 命名来删除暂存区中我们刚刚添加的代码。

2.5、提交本地库

提交本地库:我们可以通过 “git commit” 命名把暂存区中的代码提交到本地库中,从而生成对应的历史版本,实现版本控制。

指令形式:git commit -m “日志信息” 文件名 (日志信息内容自定义)

我们还是以上面的git_test为例,之前我们已经把git_test添加到暂存区里面了,现在我们需要把它提交到本地库。

其中的 “1cb81f5” 是我们本次提交所对应的版本号。

我们可以通过 “git reflog” 命令来查看日志信息,通过 “git log” 命令来查看详细的日志信息:

“git reflog” 中:依次显示的是版本号、所处分支、日志信息;

“git log” 中:依次显示的是完整版本号、所处分支、提交者/用户签名、提交时间、日志信息;

如果已经提交本地库的文件经过了修改,则需要重新把该文件复制到Git-Space文件内,然后添加到暂存区、提交到本地库,这时该文件会重新拥有一个版本号,并且之前的版本号并不会被删除,而是会一直存在,从而达到版本控制的效果。

2.6、其他操作

Git还有一些其他的操作,比如:版本穿梭,查看、创建与切换分支,合并分支,团队协作等;由于本人目前大一,而这些操作在大学中完全不会用到,所以这里我就不展开叙述,而是会在大三下学期或者大四的时候创作关于Git进阶的知识,望谅解。

版权声明:本文为CSDN博主「野猪佩奇`」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:Git 的介绍、安装及其基本操作

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
浙江宣传评世界杯转播权之争:与其花费巨资追捧海外赛事,不如投入本土足球

浙江宣传评世界杯转播权之争:与其花费巨资追捧海外赛事,不如投入本土足球

澎湃新闻
2026-05-08 12:24:10
登上访华专机前,特朗普收到通知,鲁比奥能不能来,中方给了台阶

登上访华专机前,特朗普收到通知,鲁比奥能不能来,中方给了台阶

共工之锚
2026-05-14 00:10:26
马斯克发帖炫耀:只有黄仁勋我们两个在空军一号上

马斯克发帖炫耀:只有黄仁勋我们两个在空军一号上

微微热评
2026-05-13 22:30:04
太失礼?到韩国见完中方就走,都不跟主人打招呼,首尔炸了

太失礼?到韩国见完中方就走,都不跟主人打招呼,首尔炸了

魔都姐姐杂谈
2026-05-13 22:44:16
重磅!国家正式出手!不生孩子的时代要结束了?

重磅!国家正式出手!不生孩子的时代要结束了?

一口娱乐
2026-05-13 18:11:47
刚删完中文就慌了!国际足联,耍的那点小聪明,竟捅了天大的篓子

刚删完中文就慌了!国际足联,耍的那点小聪明,竟捅了天大的篓子

西楼知趣杂谈
2026-05-13 14:16:55
华南理工男生上课偷录女生裙底:全程30分钟,现场画面,细节曝光

华南理工男生上课偷录女生裙底:全程30分钟,现场画面,细节曝光

李晚书
2026-05-13 18:02:04
立夏后,少吃鸡肉和牛肉,多吃这3种肉,腿脚有力,精力充沛过夏

立夏后,少吃鸡肉和牛肉,多吃这3种肉,腿脚有力,精力充沛过夏

花小厨
2026-05-12 12:27:48
太突然!香港80后“地产女王”烧炭身亡,曾向朋友发信息称要自杀!她草根出生,做过百亿级收购,生前已陷入严重财务困境

太突然!香港80后“地产女王”烧炭身亡,曾向朋友发信息称要自杀!她草根出生,做过百亿级收购,生前已陷入严重财务困境

每日经济新闻
2026-05-13 19:54:12
撕破脸了?国际足联官网剔除中文,甩出谈判筹码,遭40亿索赔压顶

撕破脸了?国际足联官网剔除中文,甩出谈判筹码,遭40亿索赔压顶

霁寒飘雪
2026-05-13 16:47:06
CBA赛场绝美女球迷意外走红!疑似东阳光老板娘,AI真假网友吵翻

CBA赛场绝美女球迷意外走红!疑似东阳光老板娘,AI真假网友吵翻

谭谈社会
2026-05-13 03:53:12
华人遍布全世界各地,却为何唯独泰国华人,几乎被完全同化

华人遍布全世界各地,却为何唯独泰国华人,几乎被完全同化

长风文史
2026-05-13 17:00:01
或为今年最强!8级狂风+大暴雨要来,深圳天气“大翻脸”!明天千万留意

或为今年最强!8级狂风+大暴雨要来,深圳天气“大翻脸”!明天千万留意

南方都市报
2026-05-13 22:27:53
森林狼球迷意难平!不止因为97-126惨败马刺,更多在于以下五点!

森林狼球迷意难平!不止因为97-126惨败马刺,更多在于以下五点!

田先生篮球
2026-05-13 12:24:59
刚刚!彻夜谈判失败!

刚刚!彻夜谈判失败!

中国半导体论坛
2026-05-13 12:39:51
红酒白酒全面崩盘,中国人为啥突然不愿意喝酒了呢?

红酒白酒全面崩盘,中国人为啥突然不愿意喝酒了呢?

流苏晚晴
2026-05-12 19:17:02
看完“晨光军工”手搓的飞机大炮后,无数网友把课桌吹成了“最强民用机床”?

看完“晨光军工”手搓的飞机大炮后,无数网友把课桌吹成了“最强民用机床”?

BB姬
2026-05-12 22:39:45
关心:黄仁勋为什么能“压哨登机”

关心:黄仁勋为什么能“压哨登机”

观察者网
2026-05-13 16:22:20
3-2逆转中亚劲旅,中国男足2连胜,比韩国净胜球少屈居第二

3-2逆转中亚劲旅,中国男足2连胜,比韩国净胜球少屈居第二

侧身凌空斩
2026-05-13 21:30:47
中美谈妥,贝森特握紧中方的手,新的情况发生,外资加仓中国资产

中美谈妥,贝森特握紧中方的手,新的情况发生,外资加仓中国资产

知法而形
2026-05-13 18:59:19
2026-05-14 00:43:00
马哥Linux云计算
马哥Linux云计算
知识萃取精华,赋能技术人生
93文章数 1053关注度
往期回顾 全部

科技要闻

阿里年营收首破万亿,AI终于不再是画大饼

头条要闻

特朗普抵京走红毯舞起熟悉手势 乘"陆军一号"前往酒店

头条要闻

特朗普抵京走红毯舞起熟悉手势 乘"陆军一号"前往酒店

体育要闻

14年半,74万,何冰娇没选那条更安稳的路

娱乐要闻

白鹿掉20万粉,网友为李晨鸣不平

财经要闻

美国总统特朗普抵达北京

汽车要闻

C级纯电轿跑 吉利银河"TT"申报图来了

态度原创

家居
手机
艺术
时尚
房产

家居要闻

内在自叙,无域有方

手机要闻

iPhone18Pro配色敲定+iOS 27功能曝光!今年9月的苹果,料有点多

艺术要闻

规划中的成都第三高楼,从396米降到250米以下?

专栏 | 进入心流后,不被洪流裹挟

房产要闻

卷疯了!最低杀到7字头!手握30万,海口楼市横着走!

无障碍浏览 进入关怀版