Linux基础开发工具(git篇)

目录

[1.如何理解版本控制->Git && gitee||github](#1.如何理解版本控制->Git && gitee||github)

版本控制器

git既是一个client也是一个server

git是一个底层的版本控制系统软件

gitee||GitHub是基于git的网站或者平台

去中心化,分布式的版本控制

2.Git的历史

3.安装git

4.操作

新建仓库

点击克隆/下载

[git clone+复制的](#git clone+复制的)

5.git三板斧

[先git config](#先git config)

[1.git add](#1.git add)

[2.git commit](#2.git commit)

[3.git push](#3.git push)

附加

[1.查看日志 git log](#1.查看日志 git log)

[2.查看状态git status](#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-objectgit cat-file)供高级用户和脚本直接操作仓库内部结构。

  • 相对地 ,日常使用的 git addgit 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.1

4.操作

我们这里使用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 解决冲突

今天我们的学习就到此为止,期待我们下次再见!!!

相关推荐
墨^O^1 小时前
C++ Memory Order 完全指南:从 relaxed 到 seq_cst,深入理解无锁编程与 happens-before
linux·开发语言·c++·笔记·学习·算法·缓存
returnthem2 小时前
【Linux基础知识】Linux自动化运维:编写Shell脚本实现自动化任务
linux·运维·自动化
天月风沙2 小时前
Betaflight飞控、树莓派RP2350B主控编译教程
linux·单片机·嵌入式硬件·mcu·无人机·树莓派
su_ym81102 小时前
Android 与 Linux 对比
android·linux·framework
默|笙2 小时前
【Linux】线程同步与互斥_日志与线程池
android·linux·运维
Asurplus2 小时前
【Ngrok】Linux运行内网穿透工具Ngrok
linux·运维·服务器·内网穿透·ngrok
ancktion2 小时前
ubuntu多gcc版本切换
linux·运维·ubuntu
热爱Liunx的丘丘人2 小时前
21.内核和内核参数
linux·运维·服务器
乐大师2 小时前
passwd修改密码提示“passwd:Moudle is unknown”
linux·修改密码报错·passwd命令报错