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强制删除
相关文章:
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.删除分支 …...
pytorch中nn.DataParallel多次使用
pytorch中nn.DataParallel多次使用 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader# 定义模型 class MyModel(nn.Module):def __init__(self):super(MyModel, self).__init__()self.fc nn.Linear(10, 1)def forwa…...
制作电商页面(Html)
任务 制作一个电商页面,要求所卖物品清晰,页面色调清晰,要有主页和详情页。 网站所买物品:书籍 色调:#FF2400 橙红色 代码 主页HTML代码: <html><head><meta charset"utf-8"…...
Android Sutdio依赖Snapshot版本,无法同步最新的包
起因 局域网中搭建了Nexus托管本地打包的aar,正常情况下,把修改完成的库推送到仓库后,其他项目引用Snapshot版本的依赖,同步后会马上下载最新的包,但是当第二次推送后,就没有重新下载最新的包,…...
Feign调用异常触发降级捕获异常
通过配置fallbackFactory来捕获异常信息,代码如下 FeignClient(name "user", fallbackFactory UserFallBackFactory.class) public interface UserFeign {PostMapping("/get/list")Map getList();}Component public class UserFallBackFacto…...
Springboot 音乐网站管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目
一、源码特点 springboot 音乐网站管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统 具有完整的源代码和数据库&…...
微信支付v2-02
...
企业的销售活动是什么?CRM销售管理系统给你答案
在企业业务中,销售活动是实现企业业绩目标的基本单元,起着奠基石的作用。CRM销售管理系统是销售活动管理的必备工具,帮助企业更好地开展销售活动。下面来说说企业的销售活动是什么? 什么是销售活动 简单来说,销售人员…...
【PG】PostgreSQL参数格式 配置文件格式
目录 一 PG参数格式 二 通过配置文件修改参数 postgresql.auto.conf文件 三 通过SQL修改参数 四 通过shell修改参数 五 管理配置文件内容 一 PG参数格式 所有参数名都是大小写不敏感的。每个参数都可以接受五种类型之一的值: 布尔、字符串、整数、 浮点数或枚…...
应用层协议 HTTP
一、应用层协议 我们已经学过 TCP/IP , 已然知道数据能从客户端进程经过路径选择跨网络传送到服务器端进程。 我们还需要知道的是,我们把数据从 A 端传送到 B 端, TCP/IP 解决的是顺丰的功能,而两端还要对数据进行加工处理或者使用…...
Springboot+vue的应急救援物资管理系统,Javaee项目,springboot vue前后端分离项目。
演示视频: Springbootvue的应急救援物资管理系统,Javaee项目,springboot vue前后端分离项目。 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的应急救援物资管理系统,采用M(model)V&…...
创建properties资源文件,并由spring组件类获取资源文件
1.1 创建资源文件file-upload-dev.properties #文件上传地址 file.imageUserFaceLocation=/workspaces/images/foodie/faces #图片访问地址 file.imageServerUrl=http://localhost:8088/foodie/faces1.2 创建spring组件获取资源文件类FileUpload import org.springframework.…...
你知道npm、yarn、pnpm的区别吗?
npm 嵌套的 node_modules 结构 npm 在早期采用的是嵌套的 node_modules 结构,“node_modules” 文件夹通常包含项目依赖的模块。在项目中使用多个依赖并且这些依赖本身也有它们自己的依赖时,就会出现嵌套的 “node_modules” 结构。 嵌套的 “node_mo…...
利用excel表格进行分包和组包
实际使用中,我们可能希望修改某几个数据之后,最终的数据包能够自动发动数据,类似于在给结构体变量修改数据,自动生成完整的结构体; excel语法 1:拆分数据 LEFT(A4,2) – 取A4单元格左边的两个数据 RIGHT(A4…...
Go 语言切片扩容规则是扩容2倍?1.25倍?到底几倍
本次主要来聊聊关于切片的扩容是如何扩的,还请大佬们不吝赐教 切片,相信大家用了 Go 语言那么久这这种数据类型并不陌生,但是平日里聊到关于切片是如何扩容的,很多人可能会张口就来,切片扩容的时候,如果老…...
突破封锁|华为芯片10年进化史:从K3V1到麒麟9000S
华为海思麒麟芯片过去10年研发历程回顾如下: 2009年:华为推出第一款手机芯片K3V1,采用65nm工艺制程,基于ARM11架构,主频600MHz,支持WCDMA/GSM双模网络。这款芯片搭载在华为U8800手机上,标志着华…...
vue建项目
vue3 create-vue 建vue3项目 vscode里改点东西,首先vetur禁用,这个是vue2的,下volar pinia持久化插件:npm i pinia-plugin-persistedstate 配eslint、prettier 在.eslintrc.cjs里配 rules: {// prettier专注于代码的美观度 (格…...
天龙八部服务端Public目录功能讲解
PublicDataAIScript文件夹中 script(0~210).ai怪物AI脚本设定如是否主动攻击是否使用技能 PublicDataScript文件夹中 eventbossgroupbg_BossAI_CreateMonster.lua 是BOSS群 刷小怪通用脚本 PublicDataScript文件夹中 eventbossgroupbg_CangShan.lua 苍山 BOSS群刷新脚本 Public…...
好用的Java工具类库—— Hutool
目录 一、简介 1、介绍 2、Hutool名称的由来 3、Hutool如何改变我们的coding方式 4、包含组件(核心) 5、官方文档 二、安装与使用 1、引入 import方式 exclude方式 2、安装(POM) 三、使用 1、DateUtil 2、StrUtil 3、NumberUtil 4、MapU…...
IDEA的使用(三)Debug(断点调试)(IntelliJ IDEA 2022.1.3版本)
编程过程中如果出现错误,需要查找和定位错误时,借助程序调试可以快速查找错误。 编写好程序后,可能出现的情况: 1.没有bug。 使用Debug的情况: 2.运行后,出现错误或者异常信息,但是通过日志文件…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...



