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

深入学习git

1、git原理及整体架构图

在这里插入图片描述
一些常用的命令
git add . 或 git add + src/com/ygl/hello/hello.java 指定文件
git commit . 或 git commit + src/com/ygl/hello/hello.java 指定文件
git push origin 分支名称

2、git stash的应用场景

场景一:你正在当前分支A开发,开发到一半,需要切换到分支B去修改bug
方法一:(紧急情况)
① git stash
② git checkout B,在B分支处理完成后
③ git checkout A ④ git stash pop
方法二:(不紧急情况) 先开发完成A分支并且提交,后切过去B分支解决bug

场景二:代码开发完成了,准备提交
① git stash
② git pull
③ git stash pop
④ 本地可能出现冲突情况,如果冲突的直接解决就好
⑤ git commit -m “注释”
⑥ git push origin 分支名字

关于git stash一些常用命令
存(入栈)
git stash
git stash save + “注释”

取(出栈)
git stash pop + stash@{0}
git stash apply + stash@{0}
说明:如果apply是获取栈的信息,但是步删除栈,pop会删除栈顶,如果pop上面有栈压着,他的效果跟apply一样,都不会删除栈

清理
git stash drop +stash@{0}
git stash clear 清楚所有栈

查看
git stash list 查看所有栈
git stash show + stash@{0} 查看某个栈

3、理解rebase与merge的区别

rabase(变基): 原来节点的版本版本号会改变
merge(合并):原来节点保留,新增一个节点去合并
实现的目的是一样的,只是展现形式或者场景不一样

4、各种场景的代码回滚方式

① 在工作区
git checkout + 分支名称
② 在暂存区
git reset HEAD + commit_id
git checkout + 分支名称
③ 在本地仓库(见第7点)
git reset --soft + commit_id 回退后,代码存放在暂存区
git reset --mixed + commit_id 回退后,代码存放在工作区
git reset -hard +commit_id 回退后,直接删除代码了

5、smart checkout与force checkout区别

smart checkout :会把冲突的这部分代码带到目的分支
force checkout : 不会把冲突带到目的分支,但是会删除当前分支新增的东西

6、如何撤销已经push到远程的修改,及撤销错如何恢复

撤销:
① 找要回退到的版本号 :git log
② 回退:git reset --soft 4cf2621742ae2beac4e54533df63037e6dfadb18
③ 强推:git push origin ygl02 --force

需要注意的是:别人在你撤销前拉取你需要回退的代码,如果别人再次提交,会导致代码恢复
解决办法:① 让别人提交代码再去解决, ② 你解决后让别人再次拉取最新代码再做提交

恢复:
① 通过 git reflog找到原来的版本
② 跟上面的②③过程一样

git中reset和revert的区别是什么
区别:
1、reset是彻底回退到指定的commit版本,该commit后的所有commit都将被清除;而revert仅是撤销指定commit的修改,并不影响后续的commit。
2、reset执行后不会产生记录,revert执行后会产生记录。

使用:git revert +commit_id -> git push origin ygl01
还原:git revert --abort

7、理解soft、mixed,hard区别

从本地仓库回退到不同的地方
git reset --soft + commit_id 回退后,代码存放在暂存区
git reset --mixed + commit_id 回退后,代码存放在工作区
git reset -hard +commit_id 回退后,直接删除代码了

8、git status 、git log 、 git reflog的使用

git status 查看文件的提交状态
git log 查看提交版本日志
git reflog 查看所有版本提交日志(包括回退的版本)

9、如何查看本地分支与远程分支,及当前选中的分支

查看本地分支
① git branch 注:有*号表示当前分支
② git branch -v 包括一些当前版本号等信息

查看远程分支
① git branch -r
② git brean -rv

查看所有分支信息
git branch -a

10、IDEA中用Terminal进行git commit输入中文再进行修改时出现乱码的问题解决

第一步:

# --注释:该命令表示提交命令的时候使用utf-8编码集
git config --global i18n.commitencoding utf-8
# --注释:该命令表示日志输出时使用utf-8编码集显示
git config --global i18n.logoutputencoding utf-8 

第二步:LESSCHARSET=utf-8
在这里插入图片描述
第三步:重启idea

11、查看当前提交的文件

git show --name-only 只看名字
git show; 看全部

12、git pull和git pull --rebase的区别和使用

使用下面的关系区别这两个操作:
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase

git pull = git fetch + git merge FETCH_HEAD
git pull --rebase = git fetch + git rebase FETCH_HEAD

差距就在git fetch之后的合并操作,合并操作有两种方式: git merge和git rebase

13、git clone、git pull和git fetch的用法及区别

git clone:克隆的是整个远程库。
git clone https://github.com/tensorflow/tensorflow.git

git fetch:克隆的是远程库的一个分支。
git fetch更新本地仓库的两种用法:

# 方法一
$ git fetch origin master                #从远程的origin仓库的master分支下载代码到本地的origin maste
$ git log -p master.. origin/master      #比较本地的仓库和远程参考的区别
$ git merge origin/master                #把远程下载下来的代码合并到本地仓库,远程的和本地的合并
# 方法二
$ git fetch origin master:temp           #从远程的origin仓库的master分支下载到本地并新建一个分支temp
$ git diff temp                          #比较master分支和temp分支的不同
$ git merge temp                         #合并temp分支到master分支
$ git branch -d temp                     #删除temp
git branch -D temp  #注意删除时,需要两次确认删除才会删除

git pull:是拉取远程分支更新到本地仓库的操作
git pull的用法:

$ git pull <远程主机名> <远程分支名>:<本地分支名>

举例:将远程主机origin的master分支拉取过来,与本地的branchtest分支合并。

$ git pull origin master:branchtest

如果将冒号和后面的branchtest去掉,则表示将远程origin仓库的master分支拉取下来与本地当前分支合并。
以上的git pull操作如果用git fetch来表示:

$ git fetch origin master:brantest
$ git merge brantest

14、如何创建新的分支

git branch dev

以有的分支创建新的分支
git checkout -b yourbranchname origin/oldbranchname

15、cherry-pick学习

在这里插入图片描述在这里插入图片描述

16、git diff 没有点、两个点和三个点的区别(比较冷门,理解不了可以不看,看自己是否感兴趣)

git 命令中的点总是让人有疑惑,在不同的地方有不同的意思,那git diff 中的点代表什么,有的不加点,有的两个点,有的三个点

我首先要明确git log 和 git rev-list 一样都是表示的一个范围, git diff 的参数不是标识范围,就是标识两个commit 之间的差异,跟范围没有关系

这里有两个commit foo 和 bar ,也可以是两个分支,如果是分支意味着要比较分支的head

git diff foo bar: 比较 foo 和 bar两个commit点的差别
git log foo…bar 等同于上面不加点 :比较 foo 和 bar两个commit点的差别
git log foo…bar 等同于 git diff $(git merge-base foo bar) bar :比较的foo和bar merge base那个点(最近的共同的parent)和 bar
还是上图说明更容易理解
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
和 git log 相比,git diff 是两个commit点的比较,不涉及范围,没有点和两个点代表直接比较,三个点代表从merge点开始比较
在gitlab web页面上的diff 就是用的三个点的方式

17、git diff,git log 三点 和 两点的区别(冷知识)

在这里插入图片描述
在这里插入图片描述

18、一些配置公钥私钥配置涉及到的命令

配置git ,打开Git Bash,添加用户名和邮箱(自己名字拼音):
git config --global user.name “zhangshan”
git config --global user.email “zhangshan@qq.com”
git config --global core.autocrlf false
ssh-keygen -t rsa -C “zhangshan@qq.com”
然后按三次回车

复制key到git平台上setting,也可以用命令cat id_rsa.pub
在这里插入图片描述

相关文章:

深入学习git

1、git原理及整体架构图 一些常用的命令 git add . 或 git add src/com/ygl/hello/hello.java 指定文件 git commit . 或 git commit src/com/ygl/hello/hello.java 指定文件 git push origin 分支名称 2、git stash的应用场景 场景一&#xff1a;你正在当前分支A开发&…...

第9章 Mybatis

9.1 谈谈你对Mybatis的理解 难度:★★ 重点:★★ 白话解析 说清楚Mybatis是什么,它的工作流程,然后再对比一下Hibernate就好了。 1、Mybatis是什么:它一个半自动ORM框架,它底层把JDBC那套加载驱动、创建连接、创建statement等重复性的硬编码全部给你封装好了,程序员只…...

隐蔽通信论文复现

文章目录 前言一、Limits of Reliable Communication with Low Probability of Detection on AWGN Channels摘要introduction 前言 本文准备先考虑隐蔽中通信经典的Alice, Bob, Willie三点模型, 总结出其中的经典套路 一、Limits of Reliable Communication with Low Probabil…...

《Vue.js+Spring Boot全栈开发实战》简介

大家好&#xff0c;我是老卫。 恰逢中秋国庆双节&#xff0c;不想出门看人山&#xff0c;惟愿宅家阅书海&#xff01; 今天开箱的这本书是《Vue.jsSpring Boot全栈开发实战》。 外观 从书名故名思议&#xff0c;就是基于Vue.jsSpring Boot来实现企业级应用全栈开发。 该书由…...

机器人中的数值优化(二十)——函数的光滑化技巧

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考&#xff0c;主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等&#xff0c;本系列文章篇数较多&#xff0c;不定期更新&#xff0c;上半部分介绍无约束优化&#xff0c;…...

搭建全连接网络进行分类(糖尿病为例)

拿来练手&#xff0c;大神请绕道。 1.网上的代码大多都写在一个函数里&#xff0c;但是其实很多好论文都是把网络&#xff0c;数据训练等分开写的。 2.分开写就是有一个需要注意的事情&#xff0c;就是要import 要用到的文件中的模型或者变量等。 3.全连接的回归也写了&#…...

【小沐学前端】Node.js实现基于Protobuf协议的UDP通信(UDP/TCP)

文章目录 1、简介1.1 node1.2 Protobuf 2、下载和安装2.1 node2.2 Protobuf2.2.1 安装2.2.2 工具 3、node 代码示例3.1 HTTP3.2 UDP单播3.4 UDP广播 4、Protobuf 代码示例4.1 例子: awesome.proto4.1.1 加载.proto文件方式4.1.2 加载.json文件方式4.1.3 加载.js文件方式 4.2 例…...

Verasity Tokenomics — 社区讨论总结与下一步计划

Verasity 代币经济学的社区讨论已结束。 本次讨论从 8 月 4 日持续到 9 月 29 日&#xff0c;是区块链领域规模最大的讨论之一&#xff0c;超过 500,000 名 VRA 持有者和社区成员参与讨论&#xff0c;并收到了数千份回复。 首先&#xff0c;我们要感谢所有参与讨论并提出详细建…...

JUC第十三讲:JUC锁: ReentrantLock详解

JUC第十三讲&#xff1a;JUC锁: ReentrantLock详解 本文是JUC第十三讲&#xff0c;JUC锁&#xff1a;ReentrantLock详解。可重入锁 ReentrantLock 的底层是通过 AbstractQueuedSynchronizer 实现&#xff0c;所以先要学习上一章节 AbstractQueuedSynchronizer 详解。 文章目录 …...

WSL2安装历程

WLS2安装 1、系统检查 安装WSL2必须运行 Windows 10 版本 2004 及更高版本&#xff08;内部版本 19041 及更高版本&#xff09;或 Windows 11。 查看 Windows 版本及内部版本号&#xff0c;选择 Win R&#xff0c;然后键入winver。 2、家庭版升级企业版 下载HEU_KMS_Activ…...

Ubuntu20配置Mysql常用操作

文章目录 版权声明ubuntu更换软件源Ubuntu设置静态ipUbuntu防火墙ubuntu安装ssh服务Ubuntu安装vmtoolsUbuntu安装mysql5.7Ubuntu安装mysql8.0Ubuntu卸载mysql 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明&#xff0c;所有版权属于黑马程…...

【解决方案】‘create’ is not a member of ‘cv::aruco::DetectorParameters’

‘create’ is not a member of ‘cv::aruco::DetectorParameters’ 在构建AruCo标定板标定位姿代码的过程中&#xff0c;发现代码中认为create并不是aruco::DetectorParameters的成员函数&#xff0c;这是因为在4.7.0及以上的OpenCV版本中&#xff0c;对ArUco的代码做调整&…...

门牌制作(蓝桥杯)

门牌制作 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 小蓝要为一条街的住户制作门牌号。 这条街一共有 2020 位住户&#xff0c;门牌号从 1 到 2020 编号。 小蓝制作门牌的方法是先制作 0 到 9 这几个数字字…...

支付宝支付模块开发

生成二维码 使用Hutool工具类生成二维码 引入对应的依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.5</version> </dependency><dependency><groupId>com.go…...

12、Kubernetes中KubeProxy实现之iptables和ipvs

目录 一、概述 二、iptables 代理模式 三、iptables案例分析 四、ipvs案例分析 一、概述 iptables和ipvs其实都是依赖的一个共同的Linux内核模块&#xff1a;Netfilter。Netfilter是Linux 2.4.x引入的一个子系统&#xff0c;它作为一个通用的、抽象的框架&#xff0c;提供…...

从0开始python学习-29.selenium 通过cookie信息进行登录

1. 手动输入cookie信息保持登录状态 url https://test.com/login driver.get(url) # 手动将cookie信息写入&#xff08;有多个的情况需要分开写入&#xff09;--弊端为需要每次都手动输入&#xff0c;很麻烦不适用 driver.add_cookie({"name": "SIAM_IMAGE_…...

CentOS安装OpenNebula(二)

被控端部署&#xff1a; 先要配置好yum源&#xff1a; [rootmaster yum.repos.d]# vim opennebula.repo[rootmaster yum.repos.d]# cat opennebula.repo [opennebula] nameopennebula baseurlhttps://downloads.opennebula.org/repo/5.6/CentOS/7/x86_64 enabled1 gpgkeyhttps…...

力扣第239题 c++滑动窗口经典题 单调队列

题目 239. 滑动窗口最大值 困难 提示 队列 数组 滑动窗口 单调队列 堆(优先队列) 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的…...

华为云云耀云服务器L实例评测|华为云云耀云服务器docker部署srs,可使用HLS协议

华为云云耀云服务器L实例评测&#xff5c;华为云云耀云服务器docker部署srs&#xff0c;可使用HLS协议 什么是华为云云耀云L实例 云耀云服务器L实例&#xff0c;面向初创企业和开发者打造的全新轻量应用云服务器。提供丰富严选的应用镜像&#xff0c;实现应用一键部署&#x…...

jira流转issue条目状态transitions的rest实用脚本,issue状态改变调整

官方文档链接地址&#xff1a; POST Transition issue Performs an issue transition and, if the transition has a screen, updates the fields from the transition screen. sortByCategory To update the fields on the transition screen, specify the fields in the fiel…...

JAVA 注解

1 概念 Annotation&#xff08;注解&#xff09;是 Java 提供的一种对元程序中元素关联信息和元数据&#xff08;metadata&#xff09;的途径和方法。Annatation(注解)是一个接口&#xff0c;程序可以通过反射来获取指定程序中元素的 Annotation 对象&#xff0c;然后通过该 An…...

C++面试题准备

文章目录 一、线程1.什么是进程&#xff0c;线程&#xff0c;彼此有什么区别?2.多进程、多线程的优缺点3.什么时候用进程&#xff0c;什么时候用线程4.多进程、多线程同步&#xff08;通讯&#xff09;的方法5.父进程、子进程的关系以及区别6.什么是进程上下文、中断上下文7.一…...

使用Java操作Redis

要在Java程序中操作Redis可以使用Jedis开源工具。 一、jedis的下载 如果使用Maven项目&#xff0c;可以把以下内容添加到pom中 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId>…...

VRRP配置案例(路由走向分析,端口切换)

以下配置图为例 PC1的配置 acsw下行为access口&#xff0c;上行为trunk口&#xff0c; 将g0/0/3划分到vlan100中 <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sysname acsw [acsw] Sep 11 2023 18:15:48-08:00 acsw DS/4/DATASYNC_CFGCHANGE:O…...

【图像处理】【应用程序设计】加载,编辑和保存图像数据、图像分割、色度键控研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

05. 机器学习入门 - 动态规划

文章目录 从一个案例开始动态规划 Hi, 你好。我是茶桁。 咱们之前的课程就给大家讲了什么是人工智能&#xff0c;也说了每个人的定义都不太一样。关于人工智能的不同观点和方法&#xff0c;其实是一个很复杂的领域&#xff0c;我们无法用一个或者两个概念确定什么是人工智能&a…...

【JVM】第五篇 垃圾收集器G1和ZGC详解

导航 一. G1垃圾收集算法详解1. 大对象Humongous说明2. G1收集器执行一次GC运行的过程步骤3. G1垃圾收集分类4. G1垃圾收集器参数设置5. G1垃圾收集器的优化建议6. 适合使用G1垃圾收集器的场景?二. ZGC垃圾收集器详解1. NUMA与UMA2. 颜色指针3. ZGC的运作过程4. ZGC垃圾收集器…...

嵌入式Linux应用开发-基础知识-第十九章驱动程序基石⑤

嵌入式Linux应用开发-基础知识-第十九章驱动程序基石⑤ 第十九章 驱动程序基石⑤19.9 mmap19.9.1 内存映射现象与数据结构19.9.2 ARM架构内存映射简介19.9.2.1 一级页表映射过程19.9.2.2 二级页表映射过程 19.9.3 怎么给APP新建一块内存映射19.9.3.1 mmap调用过程19.9.3.2 cach…...

数据分析技能点-独立性检验拟合优度检验

在这个数据驱动的时代,数据分析已经成为了一个不可或缺的工具,无论是在商业决策、医疗研究还是日常生活中。然而数据分析并不仅仅是一堆数字和图表;它是一个需要严谨的科学方法和逻辑推理的过程。 本文将重点介绍两种广泛应用于数据分析的统计检验方法:独立性检验和拟合优…...

了解汽车ecu组成

常用ecu框架组成&#xff1a; BCM(body control module)-车身控制模块: 如英飞凌tc265芯片&#xff1a; 车身控制单元&#xff08;BCM&#xff09;适合应用于12V和24V两种电压工作环境&#xff0c;可用于轿车、大客车和商用车的车身控制。输入模块通过采集电路采集各路开关量和…...

wordpress 图片 主题/萌新seo

语法结构 do{ <code to be looped>; }while(<test>);<test>返回的是一个bool值(循环的条件判断) 使用循环输出1-9 int index 1;do{Console.WriteLine(index);index;} while (index < 9);//do while循环会首先执行一次循环体,然后进行条件判断 循环体的执…...

莱芜金点子信息港房产/seo和sem的区别

一、前言 在阅读这篇博文前&#xff0c;请先了解《如何快速搭建一个简易的ELK日志分析系统》一文&#xff0c;在这篇博文中我们可以了解学习到EKL系统的搭建&#xff0c;同时实现了读取一个固定日志文件中的内容&#xff0c;并进行分析的示例。   在本文中&#xff0c;我们通…...

石家庄网站建设价格低/短视频剪辑培训班速成

目录 〇&#xff0c;知识背景 一&#xff0c;椭圆 二&#xff0c;椭圆曲线 1&#xff0c;一般椭圆曲线 &#xff08;1&#xff09;方程 &#xff08;2&#xff09;非椭圆曲线 &#xff08;3&#xff09;规约成常用椭圆曲线 &#xff08;4&#xff09;退化为圆锥曲线 2…...

网站后缀org/百度网页翻译

Oracle基本操作(登陆、用户、表空间、exp/imp、权限)1. 登陆 (在windows上CMD下执行)1.1. 登陆sys帐户SQLPLUS sys AS SYSDBA1.2. 登陆普通用户SQLPLUS 用户名/密码SQLPLUS 用户名/密码111.111.111.111:1521/test2. 创建用户一般分为四步2.1. 创建临时表空间CREATE TEMPORARY T…...

中国网站建设公司排行/单页网站怎么优化

当我们运用qq查找朋友时&#xff0c;发现qq里面的朋友太多&#xff0c;名字也差不多&#xff0c;不确定谁是谁时&#xff0c;那么好友的备注分组名称就会体现出来很重要&#xff0c;不管对方如何改网名还是怎么的&#xff0c;你怎么知道他是谁。以下是烟花美文网www.39394.com …...

武汉介绍网页设计/seo外包公司哪家好

来源&#xff1a;雪球App&#xff0c;作者&#xff1a; 手机中国联盟官博&#xff0c;(https://xueqiu.com/9150984509/148242228)集微网4月29日消息(文/数码控)&#xff0c;黑鲨官方推特在昨天宣布了一个好消息&#xff0c;那就是黑鲨游戏手机2海外版获得了基于Android10深度定…...