Linux基础开发工具(git篇)
目录
1.如何理解版本控制->Git && gitee||github
版本控制器
git既是一个client也是一个server
git是一个底层的版本控制系统软件
gitee||GitHub是基于git的网站或者平台
去中心化,分布式的版本控制
2.Git的历史
3.安装git
4.操作
新建仓库
点击克隆/下载
git clone+复制的
5.git三板斧
先git config
1.git add
2.git commit
3.git push
附加
1.查看日志 git log
2.查看状态git status
1.如何理解版本控制->Git && gitee||github
不知道你工作或学习时,有没有遇到这样的情况:我们在编写各种文档时,为了防止文档丢失,更改失误,失误后能恢复到原来的版本,不得不复制出一个副本
每个版本有各自的内容,但最终会只有一份报告需要被我们使用 。 但在此之前的工作都需要这些不同版本的报告,于是每次都是复制粘贴副本,产出的文件就越来越 多,文件多不是问题,问题是:随着版本数量的不断增多,你还记得这些版本各自都是修改了什么 吗? 文档如此,我们写的项目代码,也是存在这个问题的!!
版本控制器
为了能够更方便我们管理这些不同版本的文件,便有了版本控制器。所谓的版本控制器,就是能让你了解到一个文件的历史,以及它的发展过程的系统。通俗的讲就是一个可以记录工程的每一次改动和 版本迭代的一个管理系统,同时也方便多人协同作业。 目前最主流的版本控制器就是 Git 。Git 可以控制电脑上所有格式的文件,例如 doc、excel、dwg、 dgn、rvt等等。对于我们开发人员来说,Git 最重要的就是可以帮助我们管理软件开发项目中的源代码文件!
仓库本质就是一个文件夹
本地仓库
新需求:每个用户要建立不同的仓库
远端仓库git既是一个client也是一个server
每个 Git 仓库既可以作为客户端(从其他仓库
pull/fetch代码),也可以作为服务器(通过push将本地提交推送到其他仓库,或通过daemon、SSH 等方式对外提供服务)。没有严格的中央仓库概念,任何节点都可以相互拉取和推送,这也是 Git 与 SVN 等集中式版本控制系统的核心区别。
git是一个底层的版本控制系统软件
“底层”体现在:Git 的核心设计基于对象存储(blob、tree、commit、tag),并提供了一系列“管道”(plumbing)命令(如
git hash-object、git cat-file)供高级用户和脚本直接操作仓库内部结构。相对地,日常使用的
git add、git commit等被称为“瓷器”(porcelain)命令,是对底层命令的封装。所以,更准确的说法是:Git 是一个基于内容寻址文件系统的、底层的版本控制软件。它为上层工具(如 GitHub、GitLab)和开发者提供了强大的数据完整性与分布式协作能力。
gitee||GitHub是基于git的网站或者平台
去中心化,分布式的版本控制
去中心化:没有唯一的中央服务器,每个开发者的本地仓库都包含完整的版本历史,任何一个副本都可以作为新的“中心”。
分布式:所有仓库地位对等,可以在彼此之间拉取(
pull)和推送(push)提交,而不必依赖单一权威节点。这种设计带来了极高的容错性、离线工作能力和协作灵活性,与传统的集中式版本控制系统(如 Subversion)形成鲜明对比。
Git 通过分布式模型、分支与合并、远程仓库等机制,为团队协作提供了高效的基础。
2.Git的历史
git是开源的
同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。
Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用一个专有的分布式版本 控制系统 BitKeeper 来管理和维护代码。
到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。 他们对新的系统制订了若干目标:
• 速度
• 简单的设计
• 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
• 完全分布式
• 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统。
3.安装git
yum install git
[user1@iZ5waahoxw3q2bZ processbar]$ sudo yum install git [sudo] password for user1: Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.cloud.aliyuncs.com * extras: mirrors.cloud.aliyuncs.com * updates: mirrors.cloud.aliyuncs.com base | 3.6 kB 00:00:00 epel | 4.3 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 Package git-1.8.3.1-25.el7_9.x86_64 already installed and latest version Nothing to do我这里是因为已经安装了,
查看版本
git --version
[user1@iZ5waahoxw3q2bZ processbar]$ git --version git version 1.8.3.14.操作
我们这里使用gitee做演示
https://gitee.com/
新建仓库
点击克隆/下载
点击复制
git clone+复制的
[user1@iZ5waahoxw3q2bZ ~]$ git clone xxx remote: Enumerating objects: 689, done. remote: Total 689 (delta 0), reused 0 (delta 0), pack-reused 689 (from 1) Receiving objects: 100% (689/689), 3.23 MiB | 1.19 MiB/s, done. Resolving deltas: 100% (249/249), done.[user1@iZ5waahoxw3q2bZ linux-learning]$ ls -al total 20 drwxrwxr-x 5 user1 user1 4096 Apr 16 14:43 . drwx------ 4 user1 user1 4096 Apr 16 14:43 .. drwxrwxr-x 8 user1 user1 4096 Apr 16 14:42 .git drwxrwxr-x 4 user1 user1 4096 Apr 15 22:15 linux drwxrwxr-x 39 user1 user1 4096 Apr 16 14:42 xuexi我们将.git称为隐藏的本地仓库
5.git三板斧
先git config
git config --global user.email "xxxx@qq.com" git config --global user.name "nianheng666"1.git add
2.git commit
3.git push
附加
1.查看日志 git log
2.查看状态git status
git版本管理,只进行管理源文件
.gitignore:需要忽略的特定后缀的文件列表
远端仓库,相比较于任何人,都是最新的
为什么要冲突?提醒本地用户,你要和远端仓库进行同步了!
git pull 解决冲突
今天我们的学习就到此为止,期待我们下次再见!!!
