Linux:基础开发工具(五)

今天我们来学习版本控制器Git

这个工具对于我们平时写代码,保存代码十分友好,话不多说,现在开始

1.了解git的作用

不知道你⼯作或学习时,有没有遇到这样的情况:我们在编写各种⽂档时,为了防⽌⽂档丢失,更改失误,失误后能恢复到原来的版本,不得不复制出⼀个副本,⽐如:

"报告-v1"

"报告-v2"

"报告-v3"

"报告-确定版"

"报告-最终版"

"报告-究极进化版"

...

每个版本有各⾃的内容,但最终会只有⼀份报告需要被我们使⽤ 。

但在此之前的⼯作都需要这些不同版本的报告,于是每次都是复制粘贴副本,产出的⽂件就越来越

多,⽂件多不是问题,问题是:随着版本数量的不断增多,你还记得这些版本各⾃都是修改了什么

吗?

⽂档如此,我们写的项⽬代码,也是存在这个问题的!!

版本控制器git

为了能够更⽅便我们管理这些不同版本的⽂件,便有了版本控制器 。所谓的版本控制器,就是能让你了解到⼀个⽂件的历史,以及它的发展过程的系统。通俗的讲就是⼀个可以记录⼯程的每⼀次改动和版本迭代 的⼀个管理系统,同时也**⽅便多⼈协同作业** 。

⽬前最主流的版本控制器就是 Git。Git 可以控制电脑上所有格式的⽂件,例如 doc、excel、dwg、dgn、rvt等等。对于我们开发⼈员来说,Git 最重要的就是可以帮助我们管理软件开发项⽬中的源代码⽂件!

2.知道git的诞生

同⽣活中的许多伟⼤事物⼀样,Git 诞⽣于⼀个极富纷争⼤举创新的年代。

Linux 内核开源项⽬有着为数众多的参与者。 绝⼤多数的 Linux 内核维护⼯作都花在了提交补丁和保存归档的繁琐事务上(1991−2002年间)。 到 2002 年,整个项⽬组开始启⽤⼀个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux内核社区免费使⽤ BitKeeper 的权⼒(据说是这个社区有很多大佬研究起了BitKeeper的实现代码,研究出了很多伪源代码并且开源,导致BitKeeper很生气,所以收回了免费使用许可)。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 LinusTorvalds)基于使⽤ BitKeeper 时的经验教训,开发出⾃⼰的版本系统。 他们对新的系统制订了若⼲⽬标:

• 速度

• 简单的设计

• 对⾮线性开发模式的强⼒⽀持(允许成千上万个并⾏开发的分⽀)

• 完全分布式

• 有能⼒⾼效管理类似 Linux 内核⼀样的超⼤规模项⽬(速度和数据量)

⾃诞⽣于 2005 年以来,Git ⽇臻成熟完善,在⾼度易⽤的同时,仍然保留着初期设定的⽬标。 它的速度⻜快,极其适合管理⼤项⽬,有着令⼈难以置信的⾮线性分⽀管理系统。

3.安装 git

输入命令 sudo yum install -y git

这里我已经下过了,所以我会出现Nothing to do

可以输入指令 git --version 或者which git来查看是否安装

4.登录gitee并且创建一个仓库

这里基础的gitee建议去bilibili看视频了解(也可以私我,我会单独为你出一期博客讲解一步一步创建使用gitee),这里我们直接切入创建的仓库

点击克隆/下载,复制HTTPS

下载项⽬到本地

创建好⼀个放置代码的⽬录.

使用命令git clone 【刚刚复制的HTTPS】

5.git三板斧

先看看最基本的git是什么样子的

.git才是我们真正的仓库,刚刚gitee里面的test.c文件克隆到我们本地linux上了,要想完成上传文件,其实本质就是将远端的gitee仓库拉到本地来,然后在本地创建新的文件,将新的文件加入到本地仓库,然后推到远端上去

git add 将代码放到刚才下载好的⽬录中

这里我们创建了一个code1.c并且加入到了仓库里面,吗??答案是并没有 ,其实只是加到了一个临时仓库里面,下面我们要将临时仓库里面的内容加到本地仓库里面

git commit 提交改动到本地

此时才算加入了本地仓库,而且此时git status也没有新的内容

git push 同步到远端服务器上

只需要输入指令 git push即可

现在刷新gitee

就可以发现code1.c内容了

这就是git的使用啦,git是一个值得深入探索的工具,我们以后会深入了解的,下篇博客见啦

相关推荐
GeW6 小时前
超详细!RHCE10版通用备考策略,内含评分细则解读
linux
用户041328465137 小时前
Linux 服务开机自启动怎么配置?systemctl enable 原理详解
linux
BreezeJiang14 小时前
从域名到 Node.js:一次云服务器请求经过了哪些层?
服务器
草莓熊Lotso15 小时前
【Redis 初阶】Set 类型深度解析:去重集合的运算能力与实战场景
linux·网络·数据库·windows·redis·tcp/ip·缓存
张文君16 小时前
ubuntu26.04坏道坏块分区隔离急速版260831-V0.12
linux·python
IT大白鼠16 小时前
Docker 实战 ELKF 日志监控:容器日志全栈收集分析方案
运维·docker·容器
贝锐1 天前
从国产化信创设备到商用安卓终端,向日葵如何帮助企业实现统一运维管理?
linux·运维·远程控制
Julien20041 天前
调查和解决 SELinux 问题
linux·运维·服务器·网络·学习方法
天远Date Lab1 天前
零信任架构实战:基于天远双人婚姻评估查询构建自动化房产按揭联合审查网关
运维·人工智能·架构·自动化
2601_962074681 天前
自己编译RustDesk,并将自建ID服务器和key信息写入客户端
运维·服务器