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…...
AlienFX-Tools终极指南:释放Alienware设备的全部潜能
AlienFX-Tools终极指南:释放Alienware设备的全部潜能 【免费下载链接】alienfx-tools Alienware systems lights, fans, and power control tools and apps 项目地址: https://gitcode.com/gh_mirrors/al/alienfx-tools AlienFX-Tools是一款功能强大的开源硬…...
智能EFI配置终极方案:OpCore-Simplify自动化解决黑苹果安装难题
智能EFI配置终极方案:OpCore-Simplify自动化解决黑苹果安装难题 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpenCore EFI配置是黑苹果…...
【JavaScript高级编程】拆解函数流水线 上加
一、什么是setuptools? setuptools 是一个用于创建、分发和安装 Python 包的核心库。 它可以帮助你: 定义 Python 包的元数据(如名称、版本、作者等)。 声明包的依赖项,确保你的包能够正确运行。 构建源代码分发包&…...
用Shapely给你的数据加点‘空间感’:非GIS背景也能上手的Python地理分析入门
用Shapely给你的数据加点‘空间感’:非GIS背景也能上手的Python地理分析入门 想象一下,你手里有一份包含全国星巴克门店位置的数据集。传统的分析方法可能告诉你每家店的营业额、客流量,但如果能回答"哪些门店位于地铁站500米范围内&quo…...
iPhone弱网环境模拟实战指南
1. iPhone弱网测试的必要性 作为一名移动应用开发者,我深知网络环境对用户体验的影响有多大。在实际开发中,我们经常遇到这样的情况:应用在办公室的Wi-Fi环境下运行流畅,但一到地铁、电梯或者偏远地区就各种卡顿、闪退。这就是为什…...
路由懒加载/时间循环学习记录
一.路由懒加载1.路由懒加载是一种前端性能优化策略,通过将应用程序的路由组件拆分为独立的代码块(chunks),仅在用户导航到特定路由时才动态加载对应的JavaScript资源,从而实现按需加载,减少初始bundle体积&…...
春联生成模型-中文-base应用场景:印刷厂春联模板AI辅助设计流程
春联生成模型在印刷厂春联模板AI辅助设计流程中的应用 1. 引言:当传统印刷遇上AI创意 每年春节前,都是印刷厂最忙碌的时候。成千上万的春联订单涌来,从家庭用的普通对联,到企业定制的专属祝福,再到各种文创产品的创意…...
容器化Android模拟器终极指南:5大优势与完整部署方案
容器化Android模拟器终极指南:5大优势与完整部署方案 【免费下载链接】docker-android Android in docker solution with noVNC supported and video recording 项目地址: https://gitcode.com/GitHub_Trending/do/docker-android Docker-Android是一个革命性…...
实习08-Mamba 和 SSM
🔹 第一部分:Mamba 基础概念(先补地基) 1.1 什么是 State Space Model (SSM)? [公式] - SSM 思想 SSM 源自控制理论,核心是一个连续时间系统: # 连续形式(控制理论) h(t)…...
告别Gazebo Classic:在ROS2 Humble上为TurtleBot4配置Navigation2与Gazebo Modern
告别Gazebo Classic:在ROS2 Humble上为TurtleBot4配置Navigation2与Gazebo Modern 当ROS2 Humble遇上TurtleBot4,开发者们正站在机器人仿真技术迭代的十字路口。Gazebo Modern的崛起不仅代表着物理引擎的升级,更预示着整个ROS生态工具链的范式…...
