当前位置: 首页 > ops >正文

【Linux】git基础操作

目录

  • 什么是git
  • 如何在Linux上使用git
    • 配置名字与邮箱
    • 本地使用git
      • 仓库初始化
      • 添加文件到暂存区
      • 提交文件到本地仓库
      • 查看提交记录
    • 使用git搭配远端仓库托管
      • 在网站创建仓库
      • 本地拉取远端仓库
      • 代码提交到远端仓库
  • .gitignore文件

什么是git

作为一名程序员,即使没用过,也一定听过git和github的大名。git 是一个强大的​​代码(或文件)历史管理工具​​和​​团队协作工具​​。它可以跟踪文件内容的变化​​,记录项目中每个文件每次修改的完整历史,通过git还能将代码提交到远程仓库托管,全球最大的在线托管网站是github,不过由于网络原因可能用不了,作为代替我们国内也有gitee可以用。

如何在Linux上使用git

想要使用git,首先我们得有,在centos中,使用yum指令就可以下载git了。

sudo yum install -y git

配置名字与邮箱

我们在第一次使用git时,提交时可能会收到
在这里插入图片描述
这样的提醒,要我们初始化一个名字与邮箱,因为我们使用git很多时候是多人协作的情形,标明名字和邮箱可以在代码出问题或者什么其他情况时及时代码溯源,找到是哪个写错的好好惩罚他()。
所以我们要先进行相关配置,使用指令,

git config --global user.email "邮箱地址"
git config --global user.name "名字"

进行相关配置。

本地使用git

仓库初始化

想要在本体使用git我们可以先创建一个项目目录,cd进入之后使用指令

git init

初始化仓库,初始化完仓库之后,我们使用ls -la查看发现多了一个.git的隐藏目录,系统在这个目录会自动对我们的项目文件生成本体仓库,它存储了 Git 进行版本控制所需的所有元数据和对象数据库。十分重要,设置成隐藏文件的目的也是为了不让我们随便进行修改,所以没事不要修改这个目录。笔者作为初学者,对这个目录的了解也就止步于此,不做深入探讨。

添加文件到暂存区

初始化完仓库之后,我们可以在这个仓库创建对应的文件,但仅仅创建文件是不会提交到仓库,也不会被仓库所记录的。我们创建的文件需要被提交才行,使用

git add 文件名

添加文件,在Linux中我们一般就是直接使用

git add .

来直接将当前目录下的所有文件直接提交,此时系统会自动识别那些文件没有交过,自动提交。

提交文件到本地仓库

我们可以使用

git status

来检查仓库状态,查看哪些文件被修改、哪些未被跟踪,此时我们就会发现
在这里插入图片描述
出现了这样一句话,这句话的意思是我们add了新文件,需要使用commit提交到本体仓库或使用指令

git rm --cached 文件

来进行回滚即撤回add操作。为什么会这样呢,其实我们的add操作还不是真正的提交操作,add只是将文件提交到了暂存区,暂存区的文件需要被进一步提交才行,使用指令

git commit

将暂存区的文件正式提交给本地仓库,我们一般还要再后面加上选项-m在后面添加备注,这是个好习惯。注意这里即使不使用这个选项,提交之后我们也是会自动跳转进vim编译器手动输入备注的,
在这里插入图片描述
所以一般我们直接就是加-m直接写备注了,省的待会还要跳转。
在这里插入图片描述
此时我们再次使用git status指令,会发现提示我们没有要提交的文件了,工作目录与最新提交完全一致,很干净。

查看提交记录

提交的步骤完事了,我们要怎么查看提交记录呢?可以使用指令

git log

查看提交记录
在这里插入图片描述
这里笔者多修改提交了几次,可以看到,每一次的提交都能看到是谁什么时间以及提交的备注,清晰明了。顺带一提,在我们修改完文件之后使用git status,系统就自动识别了我们文件有新的修改但是没有提交,
在这里插入图片描述
笔者测试过更新文件的修改时间而文件内容不动,此时就没有提醒了,所以应该不是靠修改时间判断的。

此外,我们还可以使用指令

git show 提交过的文件

查看每次提交的详情和文件改动。
在这里插入图片描述

使用git搭配远端仓库托管

使用git提交代码到远端仓库托管是现在我们管理代码比较主流的一种方式,因为远端仓库往往更稳定安全。那么托管到远端仓库要怎么操作呢?

在网站创建仓库

这里因为网络原因,我用的gitee而不是github,gitee是国内的网站,每个人只要有网就能正常访问。注册网站用户之后我们就能创建自己的仓库了,点创建仓库就能直接创建,参数全部默认即可,也可根据自己的需求自定义,非常简单。
在这里插入图片描述
注意这里要将仓库初始化一下,不然等下本地git会拉取不成功。因为空仓库没有实际存在的分支,git 默认的 HEAD 指向 refs/heads/main(或 master),但该引用​​不存在实体​,这会导致本地拉取时的解析错误。

本地拉取远端仓库

远端仓库创建完毕,我们回到Linux主机,我们需要先将远端仓库拉取到本地,我们先复制一下远端仓库的地址,
在这里插入图片描述
不要直接复制网址,在仓库中有一个克隆下载的选项,点它复制里面的地址或复制指令直接执行。
在这里插入图片描述
这时仓库就被拉取到本地了。我们可以像使用本地仓库那样使用它,
在这里插入图片描述
可以看到.git仓库也是有的。

代码提交到远端仓库

我们使用这个仓库时,本地的提交我们都已经讲过了,可是要怎么提交代码到远端仓库呢?我们在使用完git commit后使用git status会发现与之前有所不同,
在这里插入图片描述
这提示我们虽然工作目录是干净的即本体仓库与目录是同步最新的但是与远端仓库存在同步差异,提示我们使用git push指令将更新推送到远端,

git push

直接将本地仓库的代码同步到远端仓库,他会提示我们输入网站用户名(网站昵称下面@后面的才是)与密码(账户密码),我们输入后就推送成功了
在这里插入图片描述
此时我们查看远端仓库,
在这里插入图片描述
就推送成功了。

.gitignore文件

我们在使用git提交代码时,常常会误提交一些文件,例如项目文件中有一些无关文件像配置文件什么的,我们只是想提交源代码,不想提交这些冗余文件,可是提交指定文件又太麻烦,我们得一个个指定,一般我们都是直接全部提交然后让它自动识别更新的,怎么办呢?我们可以使用.gitignore文件,.gitignore 文件是 git 版本控制系统中的一个​​配置文件​​,它的​​核心作用是告诉 Git 哪些文件或目录不应该被纳入版本控制​​。被列入.gitignore 文件中的文件或目录不会被 git add、git commit 追踪,也不会出现在 git status 的结果里。
在这里插入图片描述
在这里插入图片描述
我们在.gitignore文件中加入一些名字,可以使用通配符代指许多文件,这是我们使用git status就检测不到了,使用 git add 和 git commit 也不管用,
在这里插入图片描述
当然也不会push推送到仓库了,你连add和commit都不行还怎么push呢。我们在gitee创建仓库时可以选择自动生成一个.gitignore文件,还有对应的模板可以选择,这样创建好仓库之后本体拉取时就自动有一个.gitignore了,无需自己创建,当然如果没有生成也是能自己手动创建的,照着网上的模板(gitee创建.gitignore文件选模板时有)复制一份就可以过滤我们实际传代码时想忽略的绝大部分文件了。

http://www.xdnf.cn/news/13935.html

相关文章:

  • 【DeepSeek】移植计划
  • 110.将临时账号切换为登录后的账号
  • dbus从理论到实践教程
  • Redis的string的底层实现原理
  • AI玩转空间和时间?后续会怎样发展?
  • 【Qt】信号与槽
  • 【SystemVerilog 2023 Std】第5章 词法约定 Lexical conventions (1)
  • 前端开发中的可访问性设计:让互联网更包容
  • 开关电源和线性电源
  • Linux搭建爬虫ip与私有IP池教程
  • 期权备兑策略选择什么价值的合约?
  • 详解Python当中的pip常用命令
  • uni-app项目实战笔记5--使用grid进行定位布局
  • Qt的Modbus协议-RTU从站实现
  • 【redis——缓存击穿】
  • 202557读书笔记|《梦里花落知多少(轻经典)》——有你在的地方才最美
  • Docker Buildx 简介与安装指南
  • AQS独占模式——资源获取和释放源码分析
  • 43 C 语言 math.h 库函数详解:绝对值、数学运算、取整舍入、分解组合、三角反三角、双曲函数及宏定义常量
  • Claude Blender
  • java集合篇(一) ---- 集合的概述
  • 低成本同屏方案:电脑 + 路由器实现 50 台安卓平板实时同屏
  • 基于React Native的HarmonyOS 5.0房产与装修应用开发
  • 个典型的 Java 泛型在反序列化场景下“类型擦除 + 无法推断具体类型”导致的隐性 Bug
  • 【Google Chrome】谷歌浏览器历史版本下载
  • 基于Three.js的交互式国风博物馆设计与实现
  • 绿叶洗发水瓶-多实体建模拆图案例
  • 如何有效开展冒烟测试
  • 提升搜索可见度的基石:标题标签设置原则与SEO效能量化分析
  • DBever工具自适应mysql不同版本的连接