目录

深入了解Linux-git三板斧

深入了解Linux —— git三板斧

版本控制器 git

为了我们方便管理不同版本的文件,就有了版本控制器;

所谓的版本控制器,就是能够了解到一个文件的历史记录( 修改记录 );简单来说就是记录每一次的改动和版本迭代的一个管理系统,同时也方了多人进行协作。

当前应用最广泛的版本控制器就是 gitgit 可以控制电脑上所有格式的文件。

之前我们在 windows 下使用 git 来管理自己的本地文件,并上传至 gitee

git 简史

​ 同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众多的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到2002年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux内核社区免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux 的缔造者 LinusTorvalds )基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。他们对新的系统制订了若干目标:

  • 速度。
  • 简单的设计。
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)。
  • 完全分布式。
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)。

自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统。

那我们在 linux 下该如何使用 git 来管理文件呢?

git 三板斧

在使用之前,当然要先进行安装 git

yum install git

ubanto 下使用

sudo apt-get update

在进行管理之前,我们要登录 gitee 官网注册属于自己的账号https://gitee.com

gitee 创建仓库并克隆到本地

在注册完成账号之后,我们的账号下是没有任何仓库的;我们要先进行创建仓库,并且将仓库克隆到自己的本地来管理自己的文件。

创建仓库:

在注册完成账号后,来到个人主页,点击右上角头像旁边的 + ,点击创建仓库,进入创建仓库的界面。

https://i-blog.csdnimg.cn/direct/e5b9d2809c9347e9a07055ace55ec17c.png#pic_center

进入到以下界面

https://i-blog.csdnimg.cn/direct/e2228664466e4c688545861edeb620fe.png#pic_center

这里填写一下仓库信息

仓库名称:为自己的仓库起个名字

仓库介绍:简单介绍自己的仓库

初始化仓库:初始化语言,模版( gitignore ),开源许可证

设置模版:选择 readme 文件(可以编辑该文件,帮助读者快速了解自己的仓库内容。

分支模型:这里选择单分支模型(根据自己需求选择)。

创建完成就进入了以下界面;(可以看到 readme 文件,我们克隆到本地后可以进行修改)。

https://i-blog.csdnimg.cn/direct/2b234b59cc75482f867c5a9d93939871.png#pic_center

创建完成之后,我们将这个仓库,克隆到本地

  1. 点击上图中的 克隆/下载 ,获取当前仓库地址

https://i-blog.csdnimg.cn/direct/27b5a2b3dc084960a096b4678de89a90.png#pic_center

点击之后,有上述提示,我们只需要在本地执行即可。

git clone https://gitee.com/lxb0720/test_linux.git

https://i-blog.csdnimg.cn/direct/c1904246919f4a57a37b1a331ba0b41e.png#pic_center

如上图所示,就成功将仓库克隆到本地了,我们现在就可以看到仓库里的内容了

https://i-blog.csdnimg.cn/direct/2791690ac0bc410fa0a4b442bbc23394.png#pic_center

1. git add

git add ,我们在 windows 下,直接点击,选择要添加的文件即可;

但是在 linux 下,我们不能像 windows 那样选择要添加的文件,所以我们要告知我们要上传的文件就行上传。

https://i-blog.csdnimg.cn/direct/523574b70da540d5bc9930e6ca5f1243.png#pic_center

2. git commit

当我们 git add 之后,文件只是上传到了暂存区,并没有被管理起来;

我们要执行 git commit 将暂存区的文件上传到本地仓库,让文件被管理起来。

git commit -m "描述信息"

这里推荐加上 -m 选项,并且加上描述信息,就像写日志那样。

https://i-blog.csdnimg.cn/direct/cb1f05c04dff4ecb92d8f590ce113197.png#pic_center

3. git push

通过 git commit ,我们已经将文件在本地仓库管理起来;但是,这些文件还并没有同步到远端;我们在 gitee 上还是无法看到这些文件。

git push 就是件本地仓库内容同步到远端。

https://i-blog.csdnimg.cn/direct/7254c35754c94ce4afd8dc5d8921992f.png#pic_center

在执行 git push 之后,需要我们输入 gitee 的用户名和密码才能上传成功。

4. 首次使用 git

如果第一次使用 git 上传文件,需要我们配置运行用户名和邮箱;在我们点击 克隆/下载 时,就有提示

https://i-blog.csdnimg.cn/direct/a5a047dc281f42d3b7dad77d6c5dea55.png#pic_center

直接指向下面指令即可。

git config --global user.name '用户名' 
git config --global user.email '邮箱'

git 其他操作

git status

对于 git status ,这个操作的作用就是查看当前的状态;

说简单一点就是看现在进行了哪一步操作。

https://i-blog.csdnimg.cn/direct/760ce9df66d64b709fb51726935d4a0f.png#pic_center

这里再看 git commit 后的状态

https://i-blog.csdnimg.cn/direct/1e21506e4e10477e8f808a5b1dffad99.png#pic_center

这里执行 git push 后,再次来查看

https://i-blog.csdnimg.cn/direct/c04c9000971548dfac477336eb9f18df.png#pic_center

git log

我们使用 git 来管理我们的文件,那如果我们想要查看我们提交上传的记录,就要用到 git log

https://i-blog.csdnimg.cn/direct/b9b5a0b89c5745d688ad583bf8935850.png#pic_center

这里就可以看到我们的提交用户和日期以及提交的日志信息

git pull

在了解这个指令之前,我们先来看 git 是如何管理并同步到远端的。

https://i-blog.csdnimg.cn/direct/7a8339db241b41ea816e6a011bb04622.png#pic_center

看到这里可能有疑惑,本地文件夹和本地仓库不一样吗?

肯定是不一样的,在我们将远端仓库克隆到本地文件夹时,我们该目录下是存在一个 .git 隐藏文件的

https://i-blog.csdnimg.cn/direct/fe29fada262b4691884f7d0999bd4cda.png#pic_center

我们看到还存在一个 gitigonre 文件,那这个文件是干什么的呢?

这里就直接说了

.gitignore 文件是在我们上传文件时,需要忽视的文件名后缀。

什么意思呢?

https://i-blog.csdnimg.cn/direct/06d816d3e5cf44d6b46d9b30ab0428bc.png#pic_center

这里 .gitinore 文件中存在多种文件名的后缀,这里就看 .o

我们在编译时可能会产生临时文件 .o ,但是我们不希望将这个临时文件上传,这时 gitignore 文件中有 .o ,在上传的时候就会忽略 .o ,不会将其上传。

到这里 git 简单操作就结束了,后期深入学习 git 之后再来详细探讨 git

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2oul0hvapjsws