Linux基础工具之git

git的历史

Git 是一个分布式版本控制系统,它由Linus Torvalds 于2005年创建。下面是 Git 发展的主要历史里程碑:

  • 创建中心化版本控制系统(CVS、Subversion等):

在 Git 出现之前,许多开发者使用中心化的版本控制系统(如 CVS、Subversion)来协同开发项目。这些系统将代码存储在中央服务器上,用户通过从服务器上检出代码并提交更改来工作。

  • Linus Torvalds 创建 Git:

2005 年,Linus Torvalds 创建了 Git。他最初的目标是用于 Linux 内核的开发,因为当时的版本控制系统对于内核这样的大型项目来说并不理想。

  • Git 的分布式特性:

与中心化的版本控制系统不同,Git 是分布式的。这意味着每个开发者都可以在本地拥有完整的代码仓库,并且可以在没有网络连接的情况下进行工作。开发者可以通过克隆远程仓库来获取完整的历史记录和代码版本。

  • Git 的速度和效率:

Git 被设计成非常快速和高效的版本控制系统。它使用了一种称为“快照”的技术,只存储文件的变化部分,而不是整个文件的副本。这使得 Git 在处理大型项目时非常高效。

  • Git 的分支和合并:

Git 提供了强大的分支和合并功能,使得开发者可以轻松地创建新的分支,并在不同的分支上进行独立的工作。开发者可以在合适的时候将分支合并到主线上,从而整合各种修改和功能。

  • Git 的开源和广泛应用:

Git 是一个开源项目,并逐渐成为开发者们的首选版本控制系统。众多的软件开发团队、开源社区以及个人开发者都在使用 Git 来管理他们的代码。

总结起来Git 是由 Linus Torvalds 创建的分布式版本控制系统,它具有速度快、效率高、支持分支和合并等特点。通过提供强大的版本控制功能,Git 成为了广泛应用于各种软件开发项目的行业标准。

参考阅读git背景:

[译] Git 的历史: 软件版本控制的统治之路 - 知乎 (zhihu.com)


什么是版本控制,怎么理解?

在平时的工作生活中, 我们有时会遇到这样的情况, 对于一个文档, 我们需要经常修改很多遍, 但是其实最终只需要提交这其中的某一个版本. 随着版本的不断增多, 维护好版本是很有挑战的, 因为: 各自的版本修改的内容是什么我们不一定清楚地记得.

为了能够更方便地去管理不同版本的文件, 便有了版本控制器.

所谓的版本控制器, 就是能让你了解到一个文件的历史, 以及它的发展过程的系统. 通俗的讲就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统, 同时也⽅便多⼈协同作业.

⽬前最主流的版本控制器就是Git

Git 可以控制电脑上所有格式的⽂件, 包括文本文件(txt, doc等) 和 二进制文件(音视频文件).

对于开发者来说, Git 最重要的就是可以帮助我们管理软件开发项目中的源代码文件.

注意: 所有的版本控制系统, Git 也不例外, 其实只能跟踪文本文件的改动, 比如那一行添加/删除了什么单词. 对于二进制文件我们可以进行版本控制管理, 但是无法跟踪文件具体哪里发生了什么变化.


git 与 Gitee/GitHub

大家平时比较常用的代码托管平台应该就是Gitee/GitHub,那么Gitee/GitHub与git之间是什么样的一个关系呢?

Git 是一个版本控制系统,而 Gitee 和 GitHub 都是基于 Git 的在线代码托管平台。

Git, Gitee和GitHub的关系和区别

Git:

Git 是一个开源的分布式版本控制系统,用于管理项目的代码版本。它可以在本地计算机上创建和管理 Git 仓库,记录文件的修改历史,并提供分支管理、合并、回滚等功能。

Gitee:

Gitee 是一个类似于 GitHub 的在线代码托管平台,在中国很受欢迎。它提供了将 Git 仓库托管在云端的服务,可以方便地与他人共享代码,并进行团队协作。Gitee 提供了 Web 界面和其他工具,使用户能够更方便地管理和使用 Git 仓库。

GitHub:

GitHub 是全球最大的基于 Git 的在线代码托管平台,广泛应用于全球开源社区和企业。类似于 Gitee,GitHub 也提供了将 Git 仓库托管在云端的服务,并提供了强大的协作功能。

关系:

Gitee 和 GitHub 都是基于 Git 的在线代码托管平台,使用 Git 作为其底层的版本控制系统,因此它们完全兼容 Git,支持 Git 的所有功能。
用户可以在 Gitee 或 GitHub 上创建和管理自己的 Git 仓库,并与他人分享代码。

区别:

Gitee 和 GitHub 在地域上有一定的差异。Gitee 是为中国用户提供的服务,而 GitHub 是全球服务
用户界面和功能方面略有不同。Gitee 在一些功能上有一些特色,如集成码云 Pages、Gitee CI/CD 等。GitHub 则更注重开源社区和全球开发者的协作。

总之,Git 是一个版本控制系统,而 Gitee 和 GitHub 是基于 Git 的在线代码托管平台。通过 Gitee 或 GitHub,您可以将 Git 仓库托管在云端,并使用其他提供的功能来实现更好的团队协作和代码管理。


git的安装

Git 是开放源代码的代码托管⼯具, 最早是在Linux下开发的. 开始也只能应⽤于Linux平台, 后⾯慢慢的被移植到windows下, 现在, Git可以在 Linux, Unix, Mac 和 Windows 几大平台上正常运⾏了 .

首先输入 git 或者 git --version, 确认自己的Linux上有没有安装git:

如果出现了版本号,就表明安装了, 没安装就安装:

Centos:

sudo yum install git -y

Ubuntu: 

sudo apt-get install git -y

Windows: 需要下载 git 和 TortoiseGit, 暂忽略.


Git 基本操作

创建仓库

创建仓库有两种方法: git init本地创建 或者 远端创建仓库再git clone到本地:

一. git init

我们可以发现当前目录下多了一个.git隐藏文件, 这个文件是git用来管理我们的仓库的, 不要随便修改它: 

配置仓库 

我们需要先对git仓库配置user.name和user.email, 否则后面commit时会出问题.

在git中, 我们使用git config 命令用来配置git的配置文件, git配置级别主要有以下3类:

  1.  local  仓库级别
  2. global 用户级别,当前用户在所有仓库都用这个配置(/home/用户/config)
  3. system 系统级别,整台计算机都用这个配置(/etc/gitconfig)

优先级: git config (git config  --local) > git config --global > git config --system

 1. 我们先配置局部仓库级部的配置属性, 使用 git config 去配置仓库.

  • 使用 git config user.name "name" 去指定仓库的name;
  • 使用 git config user.email "邮箱" 去指定仓库的email.

配置完之后可以使用 git config -l 列出git仓库的配置属性.

可以使用 git config --unset user.** 去删除对应的配置:

注意: 如果你希望在不同仓库中使⽤不同的 name 或 e-mail, 也就是现在的仓库级别, 添加对应配置的时候, 输入命令时必须要在仓库的目录里

注意: 它的本质其实就是对./.git/config 文件的增删查改, 直接操作该配置文件也可以. 

2. 使用用户级别的配置文件:

添加 --global选项设置全局的配置. 表示该用户的所有的 Git 仓库都会使用这个配置.

通过 --show-origin -l 发现, 配置项的配置文件路径是全局的(/home/zzy/.gitconfig) 而不是当前仓库(.git/config):

现在验证一下全局是否生效?

新建了一个目录, 初始化时 user.name 和 user.email 自动被设置为之前全局指定的:

如果想设置仓库级别的配置也可以

  • 此时如果在仓库内执行 Git 操作, Git 会优先使用 本地配置;
  • 如果不在仓库中, 或者当前仓库没有本地配置, 则会回退到使用 全局配置.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值