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…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
Unity VR/MR开发-VR开发与传统3D开发的差异
视频讲解链接:【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...
网页端 js 读取发票里的二维码信息(图片和PDF格式)
起因 为了实现在报销流程中,发票不能重用的限制,发票上传后,希望能读出发票号,并记录发票号已用,下次不再可用于报销。 基于上面的需求,研究了OCR 的方式和读PDF的方式,实际是可行的ÿ…...
