目录
- [一、git 简史](#一、git 简史)
- 二、版本控制器
- [三、Git 的命令行操作](#三、Git 的命令行操作)
-
- [3.1 安装 git](#3.1 安装 git)
- [3.2 在 gitee 上创建项目](#3.2 在 gitee 上创建项目)
-
- [3.2.1 注册gitee](#3.2.1 注册gitee)
- [3.2.2 创建仓库](#3.2.2 创建仓库)
- [3.2.3 克隆仓库](#3.2.3 克隆仓库)
- [3.3 提交文件](#3.3 提交文件)
-
- [3.3.1 git status](#3.3.1 git status)
- [3.3.2 git add](#3.3.2 git add)
- [3.3.3 git commit](#3.3.3 git commit)
- [3.3.4 git push](#3.3.4 git push)
- [3.3.5 git log](#3.3.5 git log)
- [3.3.6 git pull](#3.3.6 git pull)
- [3.3.7 .gitignore](#3.3.7 .gitignore)
- [3.4 git配置免密码提交操作](#3.4 git配置免密码提交操作)

个人主页:矢望
一、git 简史
同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。
Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991−2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。
到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力,主要是 BitKeeper 商业公司免费提供给 Linux 内核开源社区使用,但社区里的大神尝试破解被发现了。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 LinusTorvalds)基于使用 BitKeeper 时的经验教训,开发出了自己的版本系统,也就是 Git,一经开发就马上开源了。
自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统,自此 Git 几乎一统江湖。
二、版本控制器
为了能够更方便我们管理这些不同版本的文件,便有了版本控制器。所谓的版本控制器,就是能让你了解到一个文件的历史,以及它的发展过程的系统。通俗的讲就是一个可以记录工程的每一次改动和版本迭代的一个管理系统,同时也方便多人协同作业。
目前最主流的版本控制器就是 Git 。Git 可以控制电脑上所有格式的文件,例如 doc、excel、dwg、dgn、rvt等等。对于开发人员来说,Git 最重要的就是可以帮助我们管理软件开发项目中的源代码文件。
Git 进行版本控制的时候,是通过记录"变化",来进行版本控制的。Git是一个版本控制器的软件,其中日常最常听到的GitHub 和 Gitee 是基于Git的网站,国外的网站叫做前者,国内叫做后者。
Git是一个去中心化的版本控制器,但以中心化为主。

三、Git 的命令行操作
3.1 安装 git
安装指令:
cpp
sudo yum install -y git
sudo apt install -y git
判断是否安装完成:git --version

出现版本号则证明已安装。
3.2 在 gitee 上创建项目
3.2.1 注册gitee
链接:gitee 官网,点击即可注册登录。
3.2.2 创建仓库
注册完成登录后,在你的右上角有一个加号,这里可以新建仓库。


创建完成后,会呈现出以下页面,其中有一个叫.gitignore的文件,在git上传时,只要是文件后缀出现在.gitignore中的都不会进行上传。

3.2.3 克隆仓库
当你第一次在Linux上进行提交时,你首先需要确保你的身份被Gitee识别,此时就需要执行下面的两条命令:

首先执行的两条命令:

将远程的仓库克隆到本地:


区分一个目录是工作区还是普通目录就看目录里面有没有.git,所以这个隐藏文件不能乱删。

.git中有一个objects,里面存储的这就是仓库存储的一次次的修改记录。
3.3 提交文件
现在创建一份文件。

3.3.1 git status
git status 是一个 Git 命令,用于显示工作目录和暂存区的当前状态 。它可以告诉你:哪些文件被修改了,哪些文件已暂存(准备提交),哪些文件未被跟踪,当前所在的分支,与远程仓库的同步状态等。

上面图片显示我们的test.c文件是没有添加到本地仓库.git中的。
3.3.2 git add
git add 是一个 Git 命令,用于将工作目录中的更改添加到暂存区 ,可以使用git add [文件名],也可以git add .它是将所有的修改都添加到仓库中。
执行git add .后,再次查看:

此时显示我们的信文件已经添加到本地仓库了。
3.3.3 git commit
git commit 是一个 Git 命令,用于将此次的更改永久保存到本地仓库中。
cpp
git commit -m "提交日志"
这里的提交日志记录的是你此次做了什么更改,一定不能乱写,提交日志是写给未来的自己和团队成员看的,好的提交日志是专业开发者的基本素养。

此时再次查看状态时,它说你的工作区已经干净了,但是现在你这次提交的文件还没有到远程仓库。
此时已经做完本地仓库的操作了。

3.3.4 git push
git push 是一个 Git 命令,用于将本地仓库的提交上传到远程仓库 。这是团队协作和代码共享的关键命令。

这样你的代码就从本地仓库推送到远端了。
远端仓库 :

3.3.5 git log
git log可以查看提交历史。

上图中标红的就是提交ID值,每次commit都不重复。
3.3.6 git pull
git pull 是一个 Git 命令,用于从远程仓库获取更新并合并到本地分支。
现在Linux程序员和Windows程序员共同维护了一个仓库。此时Windows程序员创建并推送了hello.c文件。

远端仓库 :

此时我们的Linux程序员上线了,他完成了一天的代码任务,开始push。

结果显示提交被拒绝了,这是因为本地仓库和远端仓库不一致,导致git push被拒绝,此时应该git pull拉取同步之后再git push。

git pull之后此时我就看到了之前另一个程序员提交的代码hello.c,并且再次push就成功了。
此时的远端仓库 :

所以 git pull 是保持代码同步的核心命令,确保:获取团队的最新工作成果,避免推送冲突,维持代码库的一致性。本质是你想要提交你的代码,必须先要把别人历史提交的代码同步到本地。
3.3.7 .gitignore
假设我不想上传本地仓库以.txt为后缀的文件,我就可以添加到.gitignore中。

创建一个以txt为后缀的文件,再创建一个别的文件进行push测试。

远端仓库:

可以看到以txt为后缀的文件并没有上传到远端,而另一个文件上传了。所以.gitignore用于指定哪些文件或目录应该被 Git 忽略,不纳入版本控制。避免提交不必要的文件。
3.4 git配置免密码提交操作
在你的Linux家目录~下,创建文件.git-credentials,并使用vim编辑它。
具体操作流程:
1、进入家目录cd ~。
2、创建文件touch .git-credentials。
3、使用vim,编辑文件并在文件中输入:
cpp
https://{username}:{password/你的私人令牌}@gitee.com
这里推荐使用你的私人令牌。
注意:上面输入的不用加大括号,假设你的gitee名是123,私人令牌是456,那么在~/.git-credentials这样输入:
cpp
https://123:456@gitee.com
在你的gitee官网仓库中的克隆下载页面就可以配置你的私人令牌了。

做完以上操作后在你的Linux终端输入:
cpp
git config --global credential.helper store
此时打开~/.gitconfig文件,会发现多了一项:
cpp
[credential]
helper = store

此时免密码提交就配置完成了。
总结:
以上就是本期博客分享的全部内容啦!如果觉得文章还不错的话可以三连支持一下,你的支持就是我前进最大的动力!
技术的探索永无止境! 道阻且长,行则将至!后续我会给大家带来更多优质博客内容,欢迎关注我的CSDN账号,我们一同成长!
(~ ̄▽ ̄)~