Git相关知识(1)

目录

1.初识Git 

1.基础知识

2.centos中下载

2.基本操作

1.创建本地仓库

2.配置本地仓库

3.版本库、工作区、暂存区

4.添加文件

5.add和commit对git文件的作用

6.修改文件

7.版本回退

8.撤销修改

9.删除文件

3.分支操作

1.HEAD与分支

2.创建分支

3.删除分支

4.合并冲突

5.分支管理

6.分支决策


1.初识Git 

1.基础知识

Git:是一种版本控制器,用于记录每一次修改以及版本迭代的一个管理系统

作用:可以控制电脑上所有格式的文档,对于开发人员而言最重要的就是可以管理项目中的源代码文档

2.centos中下载

sudo yum install git -y

2.基本操作

1.创建本地仓库

想要Git进行管理,必须将文件放在Git仓库中进行管理

git init:在当前文件中创建一个Git仓库

此时我们会发现文件中有一个隐藏文件.git,其用于追踪管理文件

2.配置本地仓库

1.配置用户名称:git config user.name "(这里写用户名字)"

2.配置用户email地址:git config user.email"(这里写用户地址)"

3.查看当前所有的配置属性:git config -l

4.重置配置:git config --unset XXX(属性)

在当前主机下,本地仓库可以开辟多个

5.所有本地仓库的配置项:本地仓库git config --global XXX(属性) YYY(配置信息)

6.--global创建的属性,不能通过普通的重置,得使用git config --global --unset XXX(属性)

3.版本库、工作区、暂存区

1.如果直接新建一个文档在本地仓库下,那么此时git并没有对该文档进行管理

2.真正管理文件的仓库其实是.git这个隐藏文件。此外不能对.git进行手动修改

3..git为版本库,也叫做仓库

4.生成的这个文档其实在工作区

5.index为暂存区,也是索引。存储的是修改对象的索引

6.objects:对象库,存储git对象。修改的工作区内容会写入到对象库的一个git对象。用于维护所有文件的版本

7.master:存储修改对象的索引

add:将工作区的修改文件添加到暂存区。这里的修改文件指的是:增删改的文件

commit:将index的文件存入到master中,此刻才能说文件被放入了版本库中进行管理

4.添加文件

git add . :工作区所有文件添加到暂存区

git add (指定文件) :工作区指定文件添加到暂存区

git commit -m "(本次添加的细节)"

git log:查看由近到远的提交记录细节   [git log --pretty=oneline]

5.add和commit对git文件的作用

1.add之后的内容都在index中

2.cat .git/HEAD后,我们能查看到HEAD指向的是master

3.master存放的是最新的commit的id

4.objects中存放了很多的对象

5.git  cat-file -p commit的id:查看objects中的对象

6.修改文件

git status:查看哪些文件进行修改

git diff 文件名:查看文件修改的是情况(-为原版,+为改版)

7.版本回退

git reset [--soft | --mixed | --head] [HEAD]:本质是将版本库的版本进行回退

--soft:只回退版本库

--mixed:回退版本库和暂存区

--head:回退所有内容

git reflog:查看每次本地提交命令

1.配合git log --pretty=oneline查看得到commitID,使用git reset [--soft | --mixed | --head] [HEAD]

2.git reset [--soft | --mixed | --head] [HEAD]可以回退,但是需要得到commitID

1.版本回退的速度其实很快

2.其原理其实是因为HEAD指向的master中有commitID,只需要在回退版本时将master的commitID修改即可

3.git reset还可以回退到当前版本,用于撤销修改。默认时--mixed,^表示回退一个版本

8.撤销修改

撤销有不同的策略:

1.只有工作区修改了

1.手动撤销 --- 不推荐 

2.git checkout -- [文件名]

2.工作区和暂存区修改了

1.git reset --head 文件名 HEAD

2.git reset 文件名,就变成了条件1

3.所有区都修改了

git reset --head HEAD

1.push操作可把版本库内容发送给远程仓库

2.想要实现条件3撤销修改操作,需要在commit之后没有进行push操作

3.条件3修改是为了不影响远程仓库

9.删除文件

方法1:rm删除文件后,还想要add和commit将文件更新

方法2:git rm 文件,实际该操作包含rm和add两步,最后我们commit即可

3.分支操作

1.HEAD与分支

HEAD指向的master,master记录最新的commitID。通过对master的结构中的parent能够回溯到之前的版本中去

2.创建分支

git branch:查看分支

git branch 创建分支的名称:创建分支

1.HEAD可以指向其他分支,被HEAD指向的分支才是当前工作的分支

2.此时我们会发现,HEAD文件中有一个master和一个新建的分支。并且这个新建分支指向的也是当前的工作分支

git checkout 分支名称:切换分支(HEAD指向新分支)

git merge 分支名称:合并分支

3.删除分支

删除分支的条件就是:必须在其他的分支上对非当前分支上进行删除

git branch -d 分支名:删除指定分支,指的是合并后的删除

4.合并冲突

多条分支对同一个文件进行操作后,使得文件的内容都不一样,那么此时如果进行git merge合并操作,那么就会报错说明当前的内容合并冲突了,需要我们自己手动进行筛选自己想要的内容。

一旦冲突修复完毕,需要重新对文件进行提交。

git log --graph --abbrev-commit:可视化分支结构

5.分支管理

git merge合并的通常为Fast forward模式。该模式无法判断是merge进来的文件还是正常提交的文件

git merge --no--ff -m "提交信息" 分支:不使用Fast forward模式

6.分支决策

1.master分支:在任何环境下都是稳定的环境,它在项目实现中作为最终出现的结果。其他分支不稳定需要经过公司的一系列测试最终将稳定的代码合并到master中去。其他分支的编写真好符合分组开发的要求。

2.bug分支:master分支稳定也不能百分百得到保证,它也会出现bug。我们不能在master中直接对文件进行修改。当然所有业务开发的文件都可以创建bug分支对文件进行修改为保证可靠性。

git stash:将工作区的内容进行存储,保存到/refs中。

git stash list:查看保存

git stash pop:撤回stash

1.如果其他文件正在开发,master出bug了,那么将其他开发文件git stash保存,此时的文件变回原来的内容。随后创造bug分支,将所有的修改改完合并到master中。最后将其他开发git stash pop,撤回stash继续开发。

2.若想继续将master和其他文件进行合并,不建议直接在master中合并,我们要在其他文件中合并,就算合并有bug也可以慢慢改

未merge的分支的删除操作:

1.首先说明不能使用git branch -d,因为文件被保护无法删除

2.可以使用git branch -D强制删除

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

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

相关文章

基于SSM的班级事务管理系统

基于SSM的班级事务管理系统 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 前台界面 登录界面 班委界面 学生界面 管理员界面 摘要 基于SSM(Spring、Spring…

ARM-day9作业

main.c: #include "uart.h"#include "key_it.h"int main(){char c;char *s;uart4_init(); //串口初始化//中断初始化key_it_config();key3_it_config();//完成GPIO相关初始化all_led_init();//风扇初始化fs_init();//蜂鸣器初始化fmq_init();while(1){…

矿区井下智慧用电安全监测解决方案

一、背景 矿区井下作业具有复杂的环境和较高的危险性,对于用电安全的要求尤为严格。传统的管理模式和监测方法往往无法实时、准确地掌握井下用电情况,对安全隐患的排查与预防存在一定局限性。因此,引入智慧用电安全监测解决方案&#xff…

黑马JVM总结(三十二)

(1)类加载器-线程上下文1 使用的应用程序类加载器来完成类的加载,不是用的启动类加载器,jdk在某些情况下要打破,双亲委派的模式,有时候需要调用应用程序类加载器来完成类的加载,否则有些类它是找…

YB4058是一款经济高效、完全集成的高输入电压单电池锂离子电池充电器

高输入电压充电器支持I2C和OVP保护 概述: YB4058是一款经济高效、完全集成的高输入电压单电池锂离子电池充电器。充电器使用了锂离子电池所需的CC/CV充电曲线。充电器可接受高达27V的输入电压,但当输入电压超过OVP时禁用阈值,通常为6.8V&am…

倒置边框半径卡片

效果展示 CSS 知识点 实现多曲面的思路 实现整体布局 <div class"card"><div class"img_box"></div><div class"content"><div class"price"></div></div> </div>.card {position…

Idea执行Pom.xml导入jar包提示sun.misc.BASE64Encoder jar找不到---SpringCloud工作笔记197

奇怪之前都是好好的,这个是因为,jdk的版本不对,重新打开以后自动被选择成jdk11了...记录一下 原因是从jdk9的时候,这个jar包已经被删除了,所以会报错,如果你用的是jdk自带的这个jar包就会报错,那么还可以,修改,不让他用jdk的,让他用 用org.apache.commons.codec.binary.Base64…

EMC Unity存储(VNXe) service Mode和Normal Mode的一些说明

本文介绍下EMC unity存储设备&#xff08;也包含VNXe存储设备&#xff09;的两种工作模式&#xff1a; Service mode&#xff1a;也叫做rescue mode&#xff0c;存储OS工作不正常或者有其他故障&#xff0c;就会进入这个模式&#xff0c;无法对外提供服务Normal mode&#xff…

centos / oracle Linux 常用运维命令讲解

目录 1.shell linux常用目录&#xff1a; 2.命令格式 3.man 帮助 4.提示符 5.echo输出字符串或变量值 6.date显示及设置系统的时间或日期 7.重启系统 8.关闭系统 9.登录注销 10.wget 下载文件 11.ps 查看系统的进程 12.top动态监视进程信息和系统负载等信息 13.l…

四、RocketMQ发送普通消息、批量消息和延迟消息

Producer发送普通消息的方式 1.同步发送消息 同步消息代表发送端发送消息到broker之后&#xff0c;等待消息发送结果后&#xff0c;再次发送消息 实现步骤 创建生产端&#xff0c;声明在哪个生产组注册NameServer地址构建Message实体&#xff0c;指定topic、tag、body启动…

GBJ2510-ASEMI电源控制柜专用GBJ2510

编辑&#xff1a;ll GBJ2510-ASEMI电源控制柜专用GBJ2510 型号&#xff1a;GBJ2510 品牌&#xff1a;ASEMI 封装&#xff1a;GBJ-4 恢复时间&#xff1a;&#xff1e;50ns 正向电流&#xff1a;25A 反向耐压&#xff1a;1000V 芯片个数&#xff1a;4 引脚数量&#xf…

HBase 表如何按照某表字段排序后顺序存储的方法?

首先需要明白HBase表的排序规则&#xff1a; &#xff08;1&#xff09;rowkey排序&#xff08;字典排序&#xff09;——升序 &#xff08;2&#xff09;Column排序&#xff08;字典排序&#xff09;——升序 &#xff08;3&#xff09;时间戳排序——降序 rowkey 字典序排序…

计算机毕业设计选什么题目好?springboot 医院门诊在线预约挂号系统

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

高数笔记03:几何、物理应用

图源&#xff1a;文心一言 本文是我学习高等数学几何、物理应用的一些笔记和心得&#xff0c;希望可以与考研路上的小伙伴一起努力上岸~~&#x1f95d;&#x1f95d; 第1版&#xff1a;查资料、画导图~&#x1f9e9;&#x1f9e9; 参考资料&#xff1a;《高等数学 基础篇》武…

PyTorch 深度学习之多分类问题Softmax Classifier(八)

1. Revision: Diabetes dataset 2. Design 10 outputs using Sigmoid? 2.1 Output a Distribution of prediction with Softmax 2.2 Softmax Layer Example, 2.3 Loss Function-Cross Entropy Cross Entropy in Numpy Cross Entropy in PyTorch 注意交叉熵损失&#xff0c;最…

Vscode中使用Romote远程开发调试Ros2环境

首先&#xff0c;成功安装ros2环境&#xff0c;参考官方文档中的教程&#xff0c;能用运行出来此处的代码 Writing a simple publisher and subscriber (Python) — ROS 2 Documentation: Iron documentation 下载vscode&#xff0c;进行远程开发&#xff0c;具体参考&#xf…

消息队列缓存,以蓝牙消息服务为例

前言 消息队列缓存&#xff0c;支持阻塞、非阻塞模式&#xff1b;支持协议、非协议模式 可自定义消息结构体数据内容 使用者只需设置一些宏定义、调用相应接口即可 这里我用蓝牙消息服务举例 有纰漏请指出&#xff0c;转载请说明。 学习交流请发邮件 1280253714qq.com 原…

IDEA通过Docker插件部署SpringBoot项目

1、配置Docker远程连接端口 找到并编辑服务器上的docker.service文件。 vim /usr/lib/systemd/system/docker.service在下面ExecStart替换成下面的 ExecStart/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock2.重启docker systemctl daemon-reload s…

Kafka 开启SASL/SCRAM认证 及 ACL授权(三)验证

Kafka 开启SASL/SCRAM认证 及 ACL授权(三)验证。 官网地址:https://kafka.apache.org/ 本文说明如何做client验证ACL是否生效,我们之前开启了无acl信息不允许访问的配置。涉及的client有以下几个场景:shell脚本、python脚本、java应用、flink流。 kafka shell script验证…