2、git进阶操作
2、git进阶操作
2.1.1 分支的创建
命令 | 参数 | 含义 |
---|---|---|
git branch (git checkout -b) | <new_branch> <old_branch> | 表示创建分支 |
-d <-D> | 删除分支 –d如果分支没有合并,git会提醒,-D强制删除 | |
-a -v | 查看分支 | |
-m | 重新命名分支 | |
commit id | 从指定的commit id签出代码 git branch branch_name commit id | |
$ git push origin branch_name将本地分支推到远程 $ git push origin branch_name --delete 将远程分支删除 |
命令 | 参数 | 含义 |
---|---|---|
git merge | <branch_name> | 需要合并的分支 |
--abort | 终止合并,并回复文件 | |
--continue | 继续合并 |
命令 | 参数 | 含义 |
---|---|---|
git rebase | <branch_1> <branch_2> | 将branch_1上面的移动到branch_2 |
--abort | 终止rebase | |
--continue | 继续rebase | |
-i | 进入交互模式 |
2.2 git reset/revert/checkout撤销操作
命令 | 参数 | 含义 |
---|---|---|
git reset | --soft commit_id | 撤销到某个commit,不修改工作区和索引区内容 |
--mixed commit_id | 撤销到某个commit,不修改工作区,修改索引区内容 | |
--hard commit_id | 撤销到某个commit,并重置工作区和索引区内容 | |
HEAD file_name | 撤销索引区指定的file_name | |
git revert | commit_id | 只撤销某个commit |
git checkout | -- . | 撤销工作区所有文件 |
2.3 git remote远程服务器操作
创建仓库 |
git clone --bare DataStruct-Algorithm /F/datastruct-algorithm.git |
git init --bare DataStruct_algorithm.git |
命令 | 参数 | 含义 |
git remote | -v | 查看详细的信息 |
show server_name | 查看主机的详细信息 | |
add server_name web_site | 添加主机 | |
rm server_name | 删除主机 | |
rename old_server_name new_ server_name | 修改主机名 |
2.4 git log高级用法
命令 | 参数 | 含义 |
git log | -n | 表示查看最近提交的n条记录 |
--graph | 显示当前分支提交记录以图形方式展示,后面—all 表示所有的分支 | |
--date=short | 查看提交的时间 | |
-p | 表示提交文件的修改了那些内容 | |
file_name | 表示查看file_name文件的提交记录 | |
commit_id..commit_id | 查看两个commit id之间的提交记录 | |
--since=<date> | 自date以来的记录 | |
--before=<date> | 表达date之前的记录 | |
--after=<date> | 表示date之后的记录 | |
--until=<date> | 表达直到date之后的记录 | |
$ git log --since="2019-07-11" --until="2019-07-16" --date=short\n 表示2019-07-11~2019-07-16(不包括16号)之间提交的记录 | ||
--grep=<contents> | 根据提交的message内容进行匹配 | |
--author=”author_name” | 根据作者名来搜索 | |
--skip=n | 跳过前面的n条记录 | |
--stat | 显示提交的文件 | |
--left-right branch1…branch2 | 比较两个分支的commit差异 |
命令 | 参数 | 含义 |
git reflog | show | 查看当前分支的记录 |
--all | 查看所有分支的记录 | |
在找到commit id之后可以使用cherry-pick branch等命令 reflog有个特点就是它只存在本地记录里面,并不会上传到服务器上 |
2.5 git diff/show查看提交详情
2.5.1 diff
命令 | 参数 | 含义 |
git diff | 不加参数 | 尚未缓存的修改(还未执行add命令) |
--cached | 已经缓存的修改 | |
<branch_name1> <branch_name2> [file_name] | 比较两个分支file_name的差异 | |
commit_id commit_id | 比较两个commit id 区别 |
3.5.2 show
命令 | 参数 | 含义 |
git show | <commit_id> | 显示commit id提交修改的内容 |
<commit_id> <file_name> | 查看commit id 中对应的file_name修改内容 | |
<tag_name> | 查看tag信息 |
命令 | 参数 | 含义 |
git tag | -m | 注释信息 |
-f | 强制覆盖 | |
-d | 删除 | |
-l | 列出所有的tag | |
-n | 列出详细信息 | |
$ git tag v2.0.0.0 –m “new version v2.0.0.0” $ git ls-remote --tags <server_name>查看远程tag $ git fetch <server_name> <tag_name> 拉取远程tag $ git push --delete <server_name> <tag_name> 删除远程的tag |
注意在checkout tag的时候,如果我们在当前的tag上做了提交,就会造成一个游离的HEAD现象,这是个非常危险的操作,有可能会造成你的commit丢失问题。
2.7 git stash操作
stash的查看,增加,删除,对比,应用
命令 | 参数 | 含义 |
git stash | save [message] | 保存stash,并且有注释信息 |
show [stash] -p | 查看某个stash的详细信息 | |
drop [stash] | 删除某个stash | |
pop | 将当前的第一个stash应用到当前的分支上 | |
apply [stash] | 应用指定的stash,并且保存stash不变化 | |
clear | 清空stash | |
list | 查看所有的stash |
2.8 git blame操作
命令 | 参数 | 含义 |
git blame | file_name | 查看这个文件都有谁提交的 |
file_name -L num1:num2 | 查看这个文件从num1行到num2行都有谁提交的 | |
file_name –L:function_name | 查看这个文件里面函数最后一次谁修改过 | |
--colors-lines | 显示颜色标记 | |
这个命令有时候可以结合grep使用,主要是为了精确查找信息 |
1.先生成patch文件 |
$ git format-patch start_commit_id..end_commit_id |
$ git format-patch –n3 |
2.可以事先检测在合并的时候是否存在冲突 |
$ git apply --check patch_file |
3.合并patch文件 |
$ git am patch_file |
4.撤销patch |
$ git apply –R patch_file |
2.10 git submodule管理大型项目的利剑
$ git init –bare test_submodule.git |
$ git submodule add git@github.com:MingYueRuYa/cpp_inside_object.git |
$ git submodule add git@github.com:MingYueRuYa/cpp_study.git |
$ git commit –m “add submodule” |
$ git push |
拉取远程分支 |
$ git clone git@github.com:MingYueRuYa/test_submodule.git |
$ git submodule init |
$ git submodule update (git submodule update –init 将上面的两步合起来) |
$ git submodule foreach git pull |
$ git submodule foreach git submodule update |
$ git rm -rf submodule_name (删除submodule) |
相关文章:

2、git进阶操作
2、git进阶操作 2.1.1 分支的创建 命令参数含义git branch (git checkout -b)<new_branch> <old_branch>表示创建分支-d <-D>删除分支 –d如果分支没有合并,git会提醒,-D强制删除-a -v查看分支-m重新命名分支commit id从指定的commi…...

集线器-交换机-路由器
1.集线器(Hub) 集线器就是将网线集中到一起的机器,也就是多台主机和设备的连接器。集线器的主要功能是对接收到的信号进行同步整形放大,以扩大网络的传输距离,是中继器的一种形式,区别在于集线器能够提供多端口服务,也…...

金融众筹模式系统源码 适合创业孵化机构+天使投资机构+投资基金会等 附带完整的搭建教程
随着互联网技术的发展和金融市场的开放,金融众筹模式逐渐成为一种新型的融资方式。这种模式通过互联网平台聚集大量投资者,共同参与到一个项目中,为项目提供资金支持,最终获得投资回报。今天罗峰给大家分享一款金融众筹模式系统源…...
大数据学习(24)-spark on hive和hive on spark的区别
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦ᾑ…...

SQLite3 数据库学习(六):Qt 嵌入式 Web 服务器详解
参考引用 SQLite 权威指南(第二版)SQLite3 入门 1. Apache 搭建 cgi 环境 1.1 什么是 Apache Apache 是世界使用排名第一的 Web 服务器软件 它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用 1.2 具体搭建流程…...

各平台chatGPT使用体验(国内外)
首推:openAI 地址:https://chat.openai.com/ 这个真的很好用,而且回复的结果也基本让让人满意,个人首推,而且对比国内的除了回答更令人满意外,它更连贯,不像国内的gpt一句一问,跟进…...

机器学习【02】在 Pycharm 里使用 Jupyter Notebook
只有 Pycharm 的 Professional 版才支持 Jupyter Notebook 一.新建一个项目 参考新建项目 二.相关设置 右键你的项目名,新建一个JupyterNotebook文件 新建后发现 点击最右边的install jupyter可以自动安装 也可以使用命令行在对应的虚拟环境中安装 我们使用直…...
什么是proxy代理?
1. 什么是proxy代理 代理(Proxy)是 JavaScript 中一种非常强大而灵活的功能。代理允许你拦截并覆盖对象的默认行为,提供了一种拦截、定制和扩展对象操作的机制。 简单说,就是在访问对象属性或者赋值时,可以做一些额外…...
opencv-python读取的图像分辨率太大不能完全显示
如果使用OpenCV-Python读取的图像分辨率太大,无法完全显示在屏幕上,可以考虑以下几种方法: 1.缩放图像:使用OpenCV的resize函数,将图像缩小到适合屏幕显示的大小。例如,可以将图像的宽度和高度都缩小到屏幕…...

【ArcGIS Pro微课1000例】0038:基于ArcGIS Pro的人口密度分析与制图
文章目录 一、人口密度二、人口密度分析1. 点密度分析2. 核密度分析三、结果比对一、人口密度 人口密度是指单位土地面积上居住的人口数,通常以每平方千米或每公顷内的常住人口为单位计算。人口密度同资源、经济密切结合,因此,科学准确地分析人口密度的分布情况,对合理制定…...

Python 安装Vue依赖包发生异常:npm ERR! notsup Required: {“node“:“^18.17.0 || >=20.5.0“}
异常: 原因:node和npm要求升级为高版本 解决:重新安装node环境 (1) 官网下载Node.js (2)双击安装node.js (3)运行查看...
TypeScript 项目 Airbnb 语法风格 ESLint 配置
TypeScript 项目 Airbnb 语法风格 ESLint 配置 1. 配置 安装: npm i -D eslint-config-airbnb-typescript typescript-eslint/eslint-plugin^6.0.0 typescript-eslint/parser^6.0.0配置: .eslintrc.js: module.exports {root: true,env: {node: true…...
怎么使用sentinel,以及所有的知识点
Sentinel是一个开源的流量控制和实时监控系统,主要用于保护企业级应用程序免受不良的请求。下面是使用Sentinel需要了解的知识点: 1. 什么是流量控制? 流量控制指的是限制应用程序的请求流量,防止过多的请求超出系统的承受范围。…...

中国一年有457万人确诊癌症!医生提示:这4种食物,再爱吃也要管住嘴
癌症是威胁人类生命健康的重大疾病,癌症的发生因素一直以来都是专家学者重点探索的课题。据世卫组织最新公布的数据显示,食物或与癌症发生之间存在着密切的联系,某些食物的摄入过多可能会增加患癌症的风险,所以我们应该警惕&#…...

小程序项目:springboot+vue基本微信小程序的宠物领养系统
项目介绍 当今科技发展迅速,交通环境也变得越来越复杂。人们的出行方式变得多元化,这给视障人士带来了一定的困扰。而导盲犬可以帮助视障人士外出行走,提高他们的生活质量。在我国,导盲犬的数量远远少于视障人士的数量。由于导盲…...

数据挖掘 K近邻
什么时候用K近邻? 交叉验证的时候。最常见的交叉验证方法是K折交叉验证,其中数据集被均匀分成K个子集,称为折,然后执行K次训练和测试,每次选择不同的折作为测试集,其余的作为训练集。最后,将K次…...

项目去除git版本控制
我 | 在这里 🕵️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 🏠 工作 | 广州 ⭐ Java 全栈开发(软件工程师) 🎃 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 ✈️已经旅游的地点 | 新疆-乌鲁木齐、新疆-吐鲁番、广东-广州…...

ICMPv6报文与邻居状态跟踪
ICMPv6报文 ICMPv6(Internet Control Message Protocol for the IPv6)是IPv6的基础协议之一。 在IPv4中,Internet控制报文协议ICMP(Internet Control Message Protocol)向源节点报告关于向目的地传输IP数据包过程中的错误和信息。它为诊断、信息和管理目的定义了一些消息…...

React中通过children prop或者React.memo来优化子组件渲染【react性能优化】
文章目录 前言未优化之前的代码问题解决方案一,通过children prop解决方案二,通过React.memo后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:react.js 🐱👓博主在前端领域还有很多知识和…...

「Verilog学习笔记」含有无关项的序列检测
专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 timescale 1ns/1ns module sequence_detect(input clk,input rst_n,input a,output reg match);reg [8:0] a_tem ; always (posedge clk or negedge rst_n) begin if (~rs…...

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
命令行关闭Windows防火墙
命令行关闭Windows防火墙 引言一、防火墙:被低估的"智能安检员"二、优先尝试!90%问题无需关闭防火墙方案1:程序白名单(解决软件误拦截)方案2:开放特定端口(解决网游/开发端口不通)三、命令行极速关闭方案方法一:PowerShell(推荐Win10/11)方法二:CMD命令…...

World-writable config file /etc/mysql/mysql.conf.d/my.cnf is ignored
https://stackoverflow.com/questions/53741107/mysql-in-docker-on-ubuntu-warning-world-writable-config-file-is-ignored 修改权限 -> 重启mysql # 检查字符集配置 SHOW VARIABLES WHERE Variable_name IN (character_set_server, character_set_database ); --------…...

MySQL技术内幕1:内容介绍+MySQL编译使用介绍
文章目录 1.整体内容介绍2.下载编译流程2.1 安装编译工具和依赖库2.2 下载编译 3.配置MySQL3.1 数据库初始化3.2 编辑配置文件3.3 启动停止MySQL3.4 登录并修改密码 1.整体内容介绍 MySQL技术系列文章将从MySQL下载编译,使用到MySQL各组件使用原理源码分析…...
【Go语言基础【19】】接口:灵活实现多态的核心机制
文章目录 零、概述一、接口基础1、接口的基本概念a. 接口定义b. 类型实现接口(无需显式声明)c. 接口变量(体现了多态) 2、实现接口的方式3、接口组合4、接口的底层结构 二、空接口与类型断言1. 空接口(interface{}&…...