一、Git介绍

Git 是一个分布式版本控制系统,它不仅仅是一个客户端工具。Git 的工作方式涉及到客户端和服务器端的概念,但它的核心功能可以在本地计算机上完成,无需网络连接。以下是 Git 的一些关键特点:

  1. 分布式版本控制

    • Git 在每个开发者的本地计算机上都有一个完整的代码库副本,包括完整的历史记录。这意味着你可以在本地进行几乎所有的版本控制操作,如提交(commit)、分支(branch)、合并(merge)等。
  2. 客户端-服务器模式

    • 尽管 Git 是分布式的,但它通常在客户端-服务器模式下使用。开发者的本地仓库(客户端)可以与远程仓库(服务器)同步。远程仓库通常托管在服务器上,如 GitHub、GitLab 或 Gitee。
  3. 客户端工具

    • Git 提供了一个命令行界面,用户可以通过命令行执行各种版本控制操作。此外,还有许多图形用户界面(GUI)客户端工具,如 GitHub Desktop、SourceTree、GitKraken 等,它们提供了更直观的操作方式。
  4. 服务器端

    • 服务器端的 Git 服务提供了远程仓库的托管,允许多个开发者协作。服务器端还提供了一些额外的功能,如权限控制、Web 界面访问、持续集成(CI)和持续部署(CD)集成等。

总结来说,Git 本身是一个分布式版本控制系统,它在本地提供了完整的版本控制功能。同时,它也支持客户端-服务器模式,允许用户通过客户端工具与远程服务器进行交互。Git 是一个命令行工具,可以在任何支持 Git 的平台上使用,并且可以在没有网络连接的情况下工作。这种模式使得团队协作和代码共享变得更加容易。

二、Github介绍

GitHub 是一个基于 Git 的在线代码托管平台,它提供了一个网站,允许开发者分享代码、协作和讨论项目。GitHub 提供了免费的公共仓库,但私有仓库(适用于企业或团队内部项目)是收费的。GitHub 还提供了一系列的 API,允许开发者和第三方应用与 GitHub 的服务进行交互。

GitHub 的强大功能和广泛的用户基础使其成为了全球最大的代码托管平台和开发者社区之一,成为全球最大的开源项目托管平台,拥有庞大的开发者社区。

三、Gitee、GitLab 和 GitCode

GitHub、Gitee 和 GitLab 以及其他很多都是基于 Git 这个版本控制系统的代码托管平台。

1、Gitee(码云)

Gitee,也称为码云,是一个中国的代码托管平台,同样基于 Git。它提供了与 GitHub 类似的功能,包括代码托管、项目管理等。Gitee 主要服务于中文社区,对于国内开发者来说,由于网络原因,访问速度可能比 GitHub 更快。Gitee 提供了免费的私有仓库服务,适合国内企业使用。

2、GitLab

GitLab 是一个类似于 GitHub 的平台,它也提供了基于 Git 的代码托管服务,并且可以免费搭建私有仓库。GitLab 不仅支持代码托管,还提供了一系列的 DevOps 工具,如 CI/CD 管道、代码审查、监控等。GitLab 可以部署在私有服务器上,这对于需要内部控制和安全性的企业来说是一个优势。

3、GitCode

GitCode 是一个开源代码托管平台,基于Git实现,类似于中国运营的Gitee。GitCode 特别考虑到了中国用户的使用习惯,提供了一些本地化的功能,如与CSDN 账号整合,中文界面。此外,还提供了与GitHub 的同步功能,允许用户将GitHub上的项目镜像到GitCode,以加快国内用户的访问。

四、git的基本使用

1、安装

1、linux直接使用包管理器安装即可

2、windows需要去官网下载对应的exe版本安装

2、git中的基本概念

1
2
3
4
5
6
7
8
git中分几个区域
1、本地工作区
就是写代码的区域
2、本地暂存区
使用git add . 将文件加入暂存区
3、本地版本库
也就是本地仓库
使用git commint将暂存区的文件送入本地仓库

3、本地仓库的提交使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 1、先去github或gitee 创建一个空仓库

// 2、创建本地git仓库
在空文件夹:git init

git clone 一个已有的仓库

// 3、配置git 的全局变量
git config --global user.name "用户名"
git config --global user.email "邮箱"

// 4、git提交到本地暂存区
git add .
或指定某个文件
git add README.md

// 5、git提交到本地仓库(同时添加一个备注)
git commit -m "新增了一个1.txt文件"

// 6、查看本地仓库的状态
git status
// 某个文件有变化会标红

4、本地仓库的log 查看

1
2
3
4
5
6
7
// 1、在本地仓库的根目录查看提交历史
git log
// 可以基本的看到提交人、提交时间和提交的备注等信息

// 2、查看详细的修改的具体文件
git log --stat
// 可以看到具体的修改的文件

5、本地仓库的版本回溯

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 1、先找到历史版本的ID
git log --stat
// 每一个版本会对应一个commit + ID

// 2、通过commit + ID 就可以查看这个版本的修改内容
git diff <commit id>

// 3、只是查看修改内容是不够的,我们可以回滚到指定版本
git reset --hard <commit id>

git checkout <commit id>

// 4、我们回滚到之前版本后,又想回滚到之后的版本,如何实现?
git reflog // 查看所有的版本,包括被干掉的版本
git reset --hard <commit id> // 再回滚回来

6、本地仓库git的分支

1
2
3
4
5
6
7
master/main:一般是GitHub自动创建的主分支,存放经过测试的稳定代码
develop:如果需要开发新的功能,会先在这个分支上进行开发测试,开发测试完成之后需要切回master分支进行合并
// --------------------------------------
git checkout -b develop:创建develop分支,并来到develop分支
git branch:查看所有分支
git checkout master:切回master分支
git merge develop:在master分支上合并develop分支

7、本地仓库提交到远程仓库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 1、指定提交到的仓库地址(http)
git remote add origin <仓库地址如:https://gitee.com/lusensec/test.git>
// 2、指定提交到的仓库地址(ssh)
git remote set-url origin git@github.com:Lusensec/Comprehensive_Growth_Toolbox.git
// error: remote origin already exists. 表示已经绑定过此仓库地址了
// 可以修改新的仓库地址:git remote set-url origin 新的仓库URL或ssh提交地址(git@github.com:Lusensec/Comprehensive_Growth_Toolbox.git)
// 也可以添加一个新的仓库地址:git remote add upstream 新的仓库URL

// 2、指定push 的分支
git push -u origin "master"
// 后续推送使用如下命令:
git push -u origin "master"
// 默认master,还有main、develop等自定义分支

// 3、强制覆盖式的推送
git push -u origin "master" --force
// 4、查看此时git对远程仓库的配置
git remote -v

五、总结

Git 是一个工具,而 GitHub、Gitee、GitLab 和GitCode 是利用 Git 提供代码托管服务的平台。

GitHub 是全球最著名的 Git 代码托管平台之一,提供了公有和私有仓库,以及丰富的社区功能,如问题跟踪、拉取请求、Fork 和 Star 等。

GitLab 提供了社区版(GitLab CE)和企业版(GitLab EE)。GitLab CE 是免费的开源软件,可以自行搭建和部署。

Gitee 作为国内平台,提供了免费的私有仓库服务,并且对于国内用户来说,访问速度更快。

GitCode 为国内用户提供了一些特殊的保障,方便国内用户访问,同时,可以同步GitHub项目镜像,可与GitHub结合使用。

选择哪个平台通常取决于个人或团队的需求、预算以及对社区和网络速度等多方面的考虑。