Git知识学习

news2024/10/6 12:24:28

主要内容:熟练掌握Git、GitHub、GitLab、Gitee码云的使用

文章目录

  • 1.Git概述
    • 1.1版本控制
    • 1.2版本控制工具
    • 1.3Git和代码托管中心
  • 2.Git常用命令
    • 2.1设置用户签名
    • 2.2初始化本地库
    • 2.3查看本地库状态
      • 2.3.1首次查看
      • 2.3.2新增文件
      • 2.3.3再次查看
    • 2.4添加暂存区
    • 2.4.1将工作区文件添加到暂存区
      • 2.4.2查看状态(检测到暂存区有新文件)
    • 2.5提交本地库
      • 2.5.1将暂存区的文件提交到本地库
      • 2.5.2查看状态(没有文件需要提交了)
    • 2.6修改文件
      • 2.6.1查看状态(检测到文件被修改)
      • 2.6.2将修改后的文件提交到暂存区
    • 2.7历史版本
      • 2.7.1查看历史版本
      • 2.7.2版本穿梭
  • 3.Git分支操作
    • 3.1分支的概念
    • 3.2分支操作
    • 3.3合并分支(冲突合并)
  • 持续更新中......

1.Git概述

  • Git是个免费的、开源的分布式版本控制系统

1.1版本控制

  • 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统

  • 版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换

1.2版本控制工具

  • 集中式版本控制工具:CVS、SVN、VSS…
    • 程序员修改代码之后要上传到中央服务器,另外一名程序员才能再中央服务器将代码下载下来修改
    • 缺点:当中央服务器宕机单点故障,则在故障期间谁都无法提交更新,也无法协同工作
  • 分布式版本控制工具:Git、Mercurial、Bazaar
    • 可以在自己的电脑上做版本的控制,会有一个远程库,让不同的程序员协同工作,当远程库宕机或者故障,只是不能提交更新,但是还是可以在自己的电脑上做版本控制

1.3Git和代码托管中心

  • 代码托管中心是基于网络服务器的远程仓库,一般简称为远程库
    • 局域网:GitLab
    • 互联网:GitHub(外网)、Gitee码云(国内网站)

2.Git常用命令

命令名称作用
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱设置用户签名
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git commit -m “日志信息” 文件名提交到本地库
git reflog查看历史记录
git reset --hard 版本号版本穿梭

2.1设置用户签名

  • 首次使用Git一定要在Git Bash窗口设置用户签名:
git config --global user.name 用户名
git config --global user.email 邮箱

2.2初始化本地库

  1. 语法:

    git init

  2. 示例:

    要想让git可以操作gitdemo这个文件夹,则要在当前文件夹下先进行初始化

在这里插入图片描述

​ 可以使用ll -a查看被隐藏的.git文件,如果有.git文件说明初始化成功

在这里插入图片描述

2.3查看本地库状态

2.3.1首次查看

  1. 语法:

    git status

  2. 示例:

    在这里插入图片描述

    可以看到目前没有提交过东西,也没有东西可以提交。

2.3.2新增文件

在这里插入图片描述

  • 新增一个hello.txt文件
  • 进入到vim模式之后,按"i"进入插入模式,可以编辑代码
  • 编辑完之后按esc退出插入模式
  • 按shift+;后再按wq,回车,保存并退出vim模式
  • 输入ll命令查看是否新增文件

在这里插入图片描述

2.3.3再次查看

  1. 语法:

    git status

  2. 再次查看:

在这里插入图片描述

​ 发现有hello.txt文件显示

2.4添加暂存区

2.4.1将工作区文件添加到暂存区

1.语法:

git add 文件名字

2.操作如下:(有警告不用管)

在这里插入图片描述

2.4.2查看状态(检测到暂存区有新文件)

在这里插入图片描述

  • 文件呈现绿色说明已经上传到暂存区,想删掉则用git rm --cached 文件名
  • 在暂存区删掉在工作区依旧存在

2.5提交本地库

2.5.1将暂存区的文件提交到本地库

1.基本语法:

​ git commit -m “日志信息” 文件名

2.示例:

在这里插入图片描述

3.通过查看日志来查看版本:

在这里插入图片描述

2.5.2查看状态(没有文件需要提交了)

在这里插入图片描述

2.6修改文件

1.修改文件:vim hello.txt,再按i修改文件即可。

2.6.1查看状态(检测到文件被修改)

在这里插入图片描述

2.6.2将修改后的文件提交到暂存区

在这里插入图片描述

  • 再次查看状态,就能发现文件名字变回绿色了。

在这里插入图片描述

  • 再次进行提交

在这里插入图片描述

在这里插入图片描述

2.7历史版本

2.7.1查看历史版本

1.基本语法:

git reflog 查看版本信息

git log 查看版本详细信息

2.示例:

在这里插入图片描述

2.7.2版本穿梭

1.基本语法:

git reset --hard 七位的版本号

2.示例:

在这里插入图片描述

3.Git分支操作

在这里插入图片描述

3.1分支的概念

在版本控制过程中,同时推进多个任务,我们就为每个任务创建一个分支,使用分支意味着程序员可以把自己的工作从开发的主线上分离开来,开发自己分支的时候不会影响主线的工作。

3.2分支操作

命令名称作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定的分支合并到当前分支上

1.查看分支

在这里插入图片描述

2.创建分支

在这里插入图片描述

3.切换分支

在这里插入图片描述

4.合并分支(如果当所合并的分支有对原分支的文件进行修改,合并之后会显示修改后的内容)

在这里插入图片描述

3.3合并分支(冲突合并)

产生冲突的原因:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,Git无法代替我们使用哪个,便会产生冲突,此时必须人为的决定新代码内容:

  • 先切换到hot-fix分支中将hello.txt文件进行修改如下:

在这里插入图片描述

  • 再将修改好之后的文通过指令git add hello.txt添加到暂存区,然后使用git commit -m “hot-fix second” hello.txt提交日志
  • 再切换回master分支,对hello.txt中的系统位置的内容进行修改,并且提交到暂存区,使用git commit -m “master second” hello.txt提交日志

在这里插入图片描述

  • 便会出现报错如下,并且文件会将冲突的部分显现出来:

在这里插入图片描述

  • 手动修改完之后再对文件进行上传到暂存区,再提交日志(记得不用带文件名)即可

在这里插入图片描述

持续更新中…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/173038.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

! LaTeX Error: File xxx.sty not found-统一解决办法

在使用一些模板时常见这个错,其实就是缺宏包!解决方案如下! 第一步:在网站 https://ctan.org/pkg 找到你缺失的宏包,下载zip文件。 第二步:将解压后的文件夹复制到安装路径下: 如&#xff…

aws ecs 理解任务和容器的资源分配

参考资料 如何在 Amazon ECS 中为任务分配内存? 关于 Amazon ECS 中的 CPU 分配,我需要了解哪些信息? Amazon ECS CloudWatch 指标 任务定义参数 在ecs中可以指定资源的分配逻辑,其实就是cpu和内存分配。 下面这张图对ecs任…

搜索本地文件

李国春 处理大量的数据集时将文件整理到一起也是一个重要的工作。本文介绍一个将本地计算机目标文件的绝对路径汇集到一个文本文件的中的脚本。以方便后续批量处理这些文件。 启动RSD,在脚本编辑窗口输入图1中的代码。点击工具条上的小三角开始运行,提…

计网必会:电子邮件、SMTP协议

文章目录SMTP概念SMTP的操作过程——发送邮件-接收邮件细品:发送邮件与HTTP的对比邮件报文格式和MIME邮件访问协议SMTP概念 SMTP是电子邮件中的主要协议,它能使用TCP可靠数据传输服务,从发送方的服务器向接收方发送邮件, SMTP&am…

第四章必备前端基础知识-第二节1:CSS概述和选择器

文章目录一:CSS概述(1)概述(2)语法规范(3)CSS引入方式二:选择器(1)基础选择器①:标签选择器②:类选择器③:id选择器④&…

MyISAM存储引擎中的索引方案

MyISAM存储引擎中的索引 我们知道 InnoDB存储引擎中索引即数据,也就是聚集索引的那棵B树的叶子节点中已经把所有完整的用户记录都包含了,而MyISAM引擎也使用BTree作为索引结构,但是却 将索引和数据分开存储,其特点如下&#xff1…

ElasticSearch Docker 部署实例

文章目录前言基本环境构建Java安装docker安装es部署安装ES验证安装安装kibana设置密码进入es容器安装Vim修改es容器配置文件设置es访问密码设置Kibana密码理想状态方案二修改挂载安装IK分词器安装ik分词器在线安装离线安装前言 虽然说要停更,但是有些东西还是需要记…

SpringMVC | SSM整合(SpringMVC+Spring+MyBatis)

0️⃣概述👾SSM与三层架构对应关系SpringMVC —— 表示层(controller、view)Spring —— 业务逻辑层(service)MyBatis —— 数据访问层(dao、pojo)👾配置文件spring-config.xml ——…

vue全家桶之vuex详解

文章目录Vuex 概述1.1 组件之间共享数据的方式1.2 Vuex 是什么1.3 使用 Vuex 统一管理状态的好处什么样的数据适合存储到 Vuex 中2. Vuex 的基本使用3. Vuex 的核心概念3.1 核心概念概述3.2 State3.3 Mutation3.4 Action3.5 GetterVuex 概述 1.1 组件之间共享数据的方式 父向…

NET.前端基础

均摘自C语言中文网 网页一般由三部分组成,分别是 HTML(超文本标记语言)、CSS(层叠样式表)和 JavaScript(简称“JS”动态脚本语言),它们三者在网页中分别承担着不同的任务。 HTML …

74. 搜索二维矩阵

74.搜索二维矩阵一、题目描述二、解题思路2.1 二分查找行2.2 二分查找列三、提交结果一、题目描述 二、解题思路 采用两次二分的方式,第一次二分用于找到target在二维矩阵中的行标,第二次二分只需要对找到的行进行二分查找即可。 2.1 二分查找行 初始…

10.3 定制操作

文章目录向算法传递函数谓词排序算法lambda表达式可调用对象介绍lambdafind_if 和 find_each的介绍lambda的捕获和返回值捕获引用捕获隐式捕获可变lambda指定lambda返回的类型函数体参数绑定标准库bind函数占位符_n具体使用bind的参数使用bind重排参数顺序绑定引用参数向算法传…

svg动画图形绘制

先介绍下绘制图形的标签 1:线段:line 2:矩形:rect 3: 圆形:circle 4:多边形:polyline(不会自动连接起点和终点) 5: 多边形:polygon (会自动连接起点和终点) v…

SAP FICO 理解统驭科目记账与特殊记账

统驭科目记账与特殊记账 【背景】 统驭科目通常分为三类:资产(A)、客户(D)和供应商(K),在创建会计科目时可在”控制数据“选项卡下进行选择。 在创建客户/供应商主数据的时候&#…

Vue插槽Slot的使用

1、认识插槽Slot 在开发中,我们会经常封装一个个可复用的组件: 前面我们会通过props传递给组件一些数据,让组件来进行展示;但是为了让这个组件具备更强的通用性,我们不能将组件中的内容限制为固定的div、span等等这些…

【零基础】学python数据结构与算法笔记15-欧几里得、RSA

文章目录前言95.欧几里得算法96.RSA算法介绍97.RSA算法测试98.算法课程总结总结前言 学习python数据结构与算法,学习常用的算法, b站学习链接 95.欧几里得算法 求最大公约数 欧几里得算法:gcd(a,b) gcd(b,a mod b) #mod取余 例&#xff1a…

04.自定义类型:结构体

1 结构体的声明 1.1 结构的基础知识 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 1.2 结构的声明 struct tag { member-list;//成员列表 }variable-list;//变量列表 EG: 描述一位学生: struct Stu {char name[…

Comparable+Comparator+Cloneable接口

文章目录ComparableComparatorCloneable浅拷贝深拷贝Comparable 当我们需要对一个自己写的类进行排序(Collections.sort和Arrays.sort)的时候,,就要使用到Comparable接口。 该接口中有一个compareTo方法,该方法其实就是一比较规则。 public interface…

货币银行学

建立大脑知识库 外汇储备不宜太高,2022年是3万亿。 美元贬值,大宗商品会更贵。 大宗商品 [1] (Commodities)是指可进入流通领域,但非零售环节,具有商品属性并用于工农业生产与消费使用的大批量买卖的物质商…

Oracle Id生成算法 —— 雪花算法

背景 近几日,被主键ID生成折磨的不太行,于是就在寻找一种合适的主键生成策略,选择一种合适的主键生成策略,可以大大降低主键ID的维护成本。 主键ID生成方法 最常用的4种主键ID生成方法 UUID:全局唯一性&#xff0c…