Git 0基础从入门到精通

2023-12-31 03:49:23

Git发展史

早期版本控制系统

在Git出现之前,使用集中式版本控制系统(如CVS和Subversion)是常见的做法。集中式版本控制系统是指将代码都存储到一个中央服务器中,但这样失去了开发者对代码的自由度灵活性有一定的限制。

Linux内核开发

为了管理Linux内核的开发,Linus Torvalds决定创建一个新的版本控制系统。起初,他使用BitKeeper作为Linux内核的版本控制工具,但是由于与BitKeeper的合作关系出现问题,迫使他开始着手开发自己的版本控制系统。

Git的诞生

在2005年,Linus Torvalds发布了Git,并将其用于管理Linux内核的开发。Git的设计目标是速度简单性强大的分支合并功能

社区和生态系统

Git拥有庞大的开发者社区,他们贡献了许多工具、插件和扩展,丰富了Git的生态系统。这些社区的贡献者和Git的用户相互交流和分享经验,使Git的使用更加方便和强大。

什么是分布式

在这里插入图片描述

分布式管理系统介绍

分布式和集中式是两个相对的概念,前面讲到过 在集中式版本控制系统中,我们的代码都在一台中央服务器上进行管理,也就是中央服务器是一台巨大的代码仓库,这样降低了开发者对于代码的控制。

这个时候就出现了分布式管理系统

  • 怎么理解分布式:
    用通俗点的话来说,分布式实际上就是众多开发者把远程仓库克隆(clone)到本地进行管理的方式,开发者可以把clone下来的代码仓库在本地进行版本的管理,最后再把成果提交到远程仓库进行代码合并。他可以把一个大的工作拆分成无数个小的工作来完成。

什么是Git

Git简介

Git是一个免费且开源的版本控制系统.旨在快速高效地处理从小型到超大型项目的所有项目。
Git 易于学习占用空间小性能快如闪电。它超越了 Subversion、CVS、Perforce 和 ClearCase 等 SCM 工具,具有廉价的本地分支、方便的暂存区域和多个工作流程等功能。

Git的基础使用

下载与安装

#更新apt源
sudo apt update && sudo apt upgrade
#使用apt安装git
sudo apt install git -y

配置Git

在使用Git之前,需要先对Git写一个简单的配置,这定义了提交代码时的用户名以及邮箱
在终端输入以下内容:

#配置邮箱
git config --global user.email "邮箱"
#配置用户名
git config --global user.name "用户名"

克隆(clone)代码

克隆(clone)指从远程仓库把代码仓库复制下来的过程,这里的远程仓库可以是Gitee,GitHub,GitLab等平台,只要是支持git就可以。亦或者也可以是自己搭建的git服务器(通常在公司企业内部会使用)。
命令很简单,如下:

#克隆仓库
git clone -b 分支名 git仓库地址

#例如:
git clone -b master https://gitee.com/cancerai/web

#其中有个-b的参数,它用来指定远程仓库的分支,因为我这仓库默认就是master分支,所以该参数可以省略不写,如下:
git clone https://gitee.com/cancerai/web

克隆成功后应该是长这样的:
在这里插入图片描述
克隆下来的是一个文件夹(git工作目录),这时候可以cd进这个目录中对仓库进行操作
在这里插入图片描述
Tip:在那里使用git clone命令即克隆哪个目录下,如上图我在/home/cancerai/Documents/open-source/使用了git clone
那么仓库的目录路径就是/home/cancerai/Documents/open-source/demo

提交仓库的更改到远程仓库

git提交流程

了解git的提交流程能对我们代码的理解更深,下面是大致的一个提交流程,可分为3个步骤:

提交到暂存区 -> 从暂存区提交到本地仓库 -> 提交到远程仓库

提交到暂存区

  • 什么是暂存区
    英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index),相当于内存的缓存。
    代码如下:
#语法:
git add 暂存的文件

#如果需要暂存所有更改的内容,则可以直接输入"."
git add .

提交到本地仓库

可以使用以下命令将暂存区的内容提交到本地仓库中

#语法:
git commit -m "名字"

这里的名字就是你对之前add的文件起个注释,可以用于说明该文件在该版本下的改动,也可以随便写(不影响提交文件)
例如:

git commit -m "file"

提交到远程仓库

在提交到远程仓库的时候也很简单,语法如下:

#语法:
git push origin master:master

这里的参数乍一看有点多,不过没关系,我们一点点来看
首先push是用于提交的参数,而后面的origin代表我们要指定提交到哪个分支
master:master???翻译成中文就是???本地仓库分支名:远程仓库分支名
这样的话这行代码的意思就是把本地名为master的分支提交到远程名为master的分支上。

不过这种写法也可以有简写:在git中当本地和远程的分支名一样时,可以写成一个

git push origin master

但这样还是会觉得有些麻烦,问题不大,git还给出了更为简单的写法

git push

在git中默认的分支就是master,所以你就算不写后面的master,git也知道你要提交到哪个分支 而origin后面没有给具体的参数,所以也可以省略不写

在输入完git push后,系统会提示让你输入你的账号密码,这个是用来验证你的身份信息
在输入密码时,在linux下会有保护机制,不会显示出密码,只要尽管输入就可以,就像这样:

在这里插入图片描述

总结

???????Git作为现在主流的版本控制工具已经被众多程序员大量使用,本文仅仅列出了最基础的Git用法,里面还有很多命令值得我们去学习,例如分支的控制,版本控制,历史查询,版本回退等等许多功能,详细可参考官方手册:https://git-scm.com/book/zh/v2

文章来源:https://blog.csdn.net/m0_73865314/article/details/135309134
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。