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…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
【堆垛策略】设计方法
堆垛策略的设计是积木堆叠系统的核心,直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法,涵盖基础规则、优化算法和容错机制: 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则: 大尺寸/重量积木在下…...
