Git命令汇总(自用,持续更新update 5/23)
文章目录
- Git常见命令
- 1. 推送空提交
- 2. 提交Clean-PR
- 3. 回退add操作
- 4. 交互式rebase
- 4.1 切换模式
- 4.2 保存与退出
- 4.3 注意Rebase
- 5. 合并多个commit
- 问题一:Clone Github报错The TLS connection was non-properly terminated.
- TLS握手
- 报错原因
- 解决
- 问题二:Failed to connect to 127.0.0.1 port 7890 after 2030 ms: Couldn't connect to server
Git常见命令
太常见的四件套 clone、pull、commit、push
就不说了。
1. 推送空提交
git commit --allow-empty -m "Empty-Commit"
然后push一下就OK了。
Q: why空提交?
A: 因为对于Github上面需要CI的项目,检查流水线或者是CLA协议卡住了。第一种方法是手动重新构建流水线然后同时构建分支流水线。但是如果无法手动启动构建,那么唯一的构建方法就是使用 Git。这时候你不需要做任何修改,只需要构建项目,所以需要推送一个空的提交来启动构建。
2. 提交Clean-PR
【注意】 这是为了很大型项目开发过程中,覆盖远程旧分支以保持干净的commit历史,方便Review,但是此操作仅适用于个人分支,用在主分支的时候务必小心!!!
-
添加上游仓库并同步最新代码
git remote add upstream https://github.com/Echo-Nie/Demo.git git fetch upstream develop
-
基于上游的develop创建新分支
git checkout -b clean-PRtest upstream/develop
-
应用本地修改到新分支
-
方法一:Cherry-pick
我个人常用的是这个,首先找到localTest
分支的提交哈希
(使用git log localTest
查看),然后:git cherry-pick <hash>
-
方法二:合并修改内容
将localTest
的更改合并到clean-test
:git merge localTest --squash # 合并并压缩为一个提交 git commit -m "提交信息"
-
-
强制推送到远程test分支:
git push origin clean-test:test --force
3. 回退add操作
首先看看哪些文件加进去了
git status
回退git add所有文件:
git reset HEAD
回退部分文件:
git reset HEAD fileName
4. 交互式rebase
在使用 Git 进行交互式 rebase 时,您可能会用到 Vim 或类似的文本编辑器来修改提交历史。以下是详细的步骤和说明,帮助您理解如何在这种情况下使用 Vim 来进行操作。
4.1 切换模式
-
正常模式切换到插入模式:如果需要编辑文本内容(如更改提交信息),首先确保自己处于 Vim 的 Normal Mode 。如果不是,请按
Esc
键退出其他模式。然后按下i
键进入 Insert Mode 。此时, -
从可视模式或命令行模式切换到插入模式:
如果当前处于可视模式(Visual Mode)或命令行模式(Command-line Mode),请先按Esc
键返回到正常模式,然后再按i
、a
或o
等键进入插入模式。具体来说,i
:在光标所在位置前开始插入;a
:在光标所在位置后开始插入;o
:在当前行下方新开一行并进入插入模式。
4.2 保存与退出
-
保存更改:完成文本编辑后,按
Esc
键回到正常模式。要保存所做的更改而不退出 Vim 编辑器,请输入:w
并按回车键。 -
退出编辑器:若要退出编辑器但不保存更改,请输入
:q!
并按回车键(注意这会丢弃所有未保存的更改)。如果希望保存更改并退出,则输入:wq
或简写为:x
并按回车键。
4.3 注意Rebase
-
在成功保存并退出 Vim 编辑器后,根据您的操作,Git 可能会提示您继续 rebase 过程。这时,您需要运行
git rebase --continue
命令来完成整个 rebase 操作。此步骤可能需要重复多次,直到处理完所有的提交。 -
重要的是,在执行 rebase 操作之前,请确保理解 rebase 对提交历史的影响,并确认它不会影响团队成员的工作流程。特别是当涉及到已推送至远程仓库的提交时,应格外小心,因为 rebase 会改变提交历史。
5. 合并多个commit
- 合并最近
n
个提交,运行:
git rebase -i HEAD~n
-
编辑提交列表:
- 在打开的文本中,将你想要合并的所有提交前的
pick
改为squash
或简写s
,除了第一个提交保持pick
不变。pick abcdefg 提交信息1squash hijklmn 提交信息2squash opqrstu 提交信息3
- 在打开的文本中,将你想要合并的所有提交前的
-
保存并退出编辑器(Vim为例:按
Esc
, 输入:wq
, 按回车)。 -
编辑合并后的提交信息:
Git会再次打开编辑器让你编辑新的合并提交的信息。编辑后,再次保存并退出。 -
强制推送更新(如果已推送到远程仓库):
git push --force
强制推送会覆盖远程仓库的历史,所以如果其他人也在基于这些提交工作,可能会导致冲突。
问题一:Clone Github报错The TLS connection was non-properly terminated.
最近在服务器上跑代码,clone Github代码报错
GnuTLS recv error (-110): The TLS connection was non-properly terminated.
TLS握手
TLS(Transport Layer Security,传输层安全协议)握手是建立安全网络连接的关键步骤。在Git通过HTTPS协议与远程仓库通信时,TLS握手的主要目的是:验证服务器的身份,确保连接到的是合法的远程仓库;客户端和服务器协商生成会话密钥,用于后续的数据加密传输。
握手过程通常包括以下步骤:
- 客户端问候:客户端向服务器发送支持的TLS版本、加密算法等信息。
- 服务器问候:服务器选择一种加密算法,并返回自己的证书用于身份验证。
- 密钥交换:客户端和服务器根据选定的加密算法协商生成会话密钥。
- 完成握手:双方确认握手完成,开始使用会话密钥进行加密通信。
报错原因
当出现“gnutls_handshake() failed”错误时,说明在TLS握手过程中出现了问题,导致无法建立安全连接。以下是几种常见原因:
1.代理设置问题
如果之前设置了代理,但当前网络环境不需要代理,或者代理配置不正确,可能会干扰Git与远程仓库的直接通信,导致TLS握手失败。Git在尝试通过代理连接时,可能无法正确处理握手过程中的数据包,从而引发错误。
2. Git版本问题
旧版本的Git可能存在兼容性问题,导致与服务器的TLS握手出现异常。例如,某些版本的Git使用GnuTLS库进行加密传输,在特殊情况下(如使用了代理服务器)可能出现握手失败的问题。
3. SSL证书问题
本地SSL证书过期或不受信任,会导致服务器的SSL证书无法通过客户端的验证。这可能是由于证书颁发机构(CA)的证书未正确安装,或者证书本身存在问题。
解决
清除代理设置
清除Git的代理配置,使Git能够直接与远程仓库建立连接,避免代理设置导致的握手问题:
git config --global --unset https.https://github.com.proxy
git config --global --unset http.https://github.com.proxy
更新Git版本
更新Git到最新版本,以确保使用的是经过优化和修复的版本,避免因旧版本的兼容性问题导致握手失败。在Linux系统上,可以通过包管理器(如apt-get
)更新Git。
我清除代理之后就OK了。
问题二:Failed to connect to 127.0.0.1 port 7890 after 2030 ms: Couldn’t connect to server
git config --global --unset http.proxy
git config --global --unset https.proxy
相关文章:
Git命令汇总(自用,持续更新update 5/23)
文章目录 Git常见命令1. 推送空提交2. 提交Clean-PR3. 回退add操作4. 交互式rebase4.1 切换模式4.2 保存与退出4.3 注意Rebase 5. 合并多个commit 问题一:Clone Github报错The TLS connection was non-properly terminated.TLS握手报错原因解决 问题二:F…...

window xampp apache使用腾讯云ssl证书配置https
下载腾讯云ssl证书: 编辑Apache根目录下 conf/httpd.conf 文件: #LoadModule ssl_module modules/mod_ssl.so和#Include conf/extra/httpd-ssl.conf,去掉前面的#号注释。 编辑Apache根目录下 conf/httpd-ssl.conf 文件: <Vi…...
MATLAB求解二元一次方程组基础教程
MATLAB求解二元一次方程组基础教程 一、二元一次方程组简介 二元一次方程组是包含两个未知数(x和y)的一组方程,每个方程中未知数的最高次数为1。一般形式为: a₁x b₁y c₁ a₂x b₂y c₂其中a₁, b₁, c₁, a₂, b₂, c₂为已知系数。 二、MATL…...
Android13 wifi设置国家码详解
Android13 wifi设置国家码详解 文章目录 Android13 wifi设置国家码详解一、前言二、设置wifi国家码相关代码1、adb或者串口也能设置和获取当前国家码(1)查询命令的方式(2)获取和设置国家码的示例 2、Java代码设置国家码3、获取当前…...

逆向音乐APP:Python爬虫获取音乐榜单 (1)
1. 引言 在数字音乐时代,许多平台如音乐有榜单,限制非付费用户访问高音质或独家内容。然而,从技术研究的角度来看,我们可以通过逆向工程和Python爬虫技术解音乐的API接口,获取付费音乐的播放链接。 2. 技术准备 在当…...
JVM 垃圾回收器
以下是对主流 JVM 垃圾回收器的详细解析,涵盖 一、Serial GC(单线程串行回收器) 二、Parallel GC(吞吐量优先回收器) 三、CMS(Concurrent Mark Sweep,低延迟回收器) 四、G1&…...
Java合并两个列表到目标列表,并且进行排序
可以通过使用addAll()方法将两个列表合并到目标列表中。以下是实现代码: java 复制 下载 List<LedgerRecord> rkRecordList warehouseMapper.selectLedgerRkRecordByMaterialNo(materialNo); List<LedgerRecord> ckRecordList warehouseMapper.se…...
Spring AI Alibaba集成阿里云百炼大模型应用
文章目录 1.准备工作2.引入maven依赖3.application.yml4.调用4.1.非流式调用4.2.流式调用 阿里云百炼推出的智能体应用、工作流应用和智能体编排应用,有效解决了大模型在处理私有领域问题、获取最新信息、遵循固定流程以及自动规划复杂项目等方面的局限,…...
22. 用例依赖装饰器的实现思路和方法
22. 用例依赖装饰器的实现思路和方法 一、核心功能解析 1.1 实现目标 depend(casetest_login) # 当test_login失败时跳过当前测试 def test_order(self):pass功能特性: 前置依赖检测自动跳过失效用例异常依赖关系校验实时结果分析 二、代码逐行解析 2.1 自定义…...

支持向量存储:PostgresSQL及pgvector扩展详细安装步骤!老工程接入RAG功能必备!
之前文章和大家分享过,将会出一篇专栏(从电脑装ubuntu系统,到安装ubuntu的常用基础软件:jdk、python、node、nginx、maven、supervisor、minio、docker、git、mysql、redis、postgresql、mq、ollama等),目前…...
【部署】如何离线环境创建docker容器执行python命令行程序
回到目录 【部署】如何离线环境创建docker容器执行python命令行程序 本文以 dify_import项目为例,讲解如何在离线服务器上,搭建docker容器环境,执行python命令行程序 1. 一台有互联网的服务器(ubuntu24.04) 1.1. 拉取一个ubuntu的docker镜…...

idea常用配置 properties中文输出乱码
propertis配置中文乱码 源码和编译后的都是中文 程序输入效果 idea配置3处 程序输出效果 自定义注释模板 IDEA 中有以下两种配置模板。 File and Code Templates Live Templates File and Code Templates File and Code Templates 用来配置文件和代码模板,即…...
【Bluedroid】蓝牙 HID Host connect全流程源码解析
蓝牙 HID(Human Interface Device,人机接口设备)是智能设备与外设(如键盘、鼠标、游戏手柄)交互的核心协议。本文围绕Android蓝牙 HID 主机模块的连接流程,从上层应用发起连接请求开始,逐层解析协议栈内部的状态检查、设备管理、SDP 服务发现、L2CAP 通道建立等关键步骤…...

day1 大模型学习 Qwen系列学习
Qwen 模型学习笔记:RM、SFT 与 RLHF 技术解析 一、Qwen 模型概述 Qwen 是阿里巴巴开源的大型语言模型系列,旨在实现通用人工智能(AGI)。其架构包括基础语言模型(如 Qwen-7B、Qwen-14B、Qwen-72B)和经过后训练的对话模型(如 Qwen-Chat)。后训练主要通过 SFT 和 RLHF 技…...

Unity3D仿星露谷物语开发47之砍树时落叶特效
1、目标 当橡树被砍伐时的落叶粒子效果。 2、创建粒子物体 Hierarchy -> PersistentScene下创建新物体命名为DeciduousLeavesFalling。 添加Particle System组件。 基础配置如下:(暂时勾选Looping实时可以看生成效果,后面反选即可&am…...

第十节第六部分:常见API:DateTimeFormatter、Period、Duration
DateTimeFormatter类常用方法 Period类常用方法 Duration类常用方法 总结 代码: 代码一:DateTimeFormatter类常用方法 package com.itheima.jdk8_time;import java.time.LocalDateTime; import java.time.format.DateTimeFormatter;public class DateT…...

如何在VSCode中更换默认浏览器:完整指南
引言 作为前端开发者,我们经常需要在VSCode中快速预览HTML文件。默认情况下,VSCode会使用系统默认浏览器打开文件,但有时我们可能需要切换到其他浏览器进行测试。本文将详细介绍如何在VSCode中更换默认浏览器。 方法一:使用VSCo…...
B2160 病人排队
题目描述 编写一个程序,将登记的病人按照以下原则排出看病的先后顺序: 老年人(年龄 ≥60 岁)比非老年人优先看病。老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。非老年人按登记的先后顺序看病。输入格式 第 1 行,输入一个小于 100 的正整数,表示病人…...

【机器人】复现 3D-Mem 具身探索和推理 | 3D场景记忆 CVPR 2025
3D-Mem 是用于具体探索和推理的3D场景记忆,来自CVPR 2025. 本文分享3D-Mem复现和模型推理的过程~ 下面是一个推理和选择识别的结果: 看一下机器人探索的效果: 下面是真实环境下,官方跑的demo,3D-Mem无需训…...

鸿蒙进阶——CMakelist、GN语法简介及三方库通用移植指南
文章大纲 引言一、GN常用的内置变量二、GN常用的内置函数三、CMake 重要语法1、生成动态库2、生成静态库3、生成OBJECT 库4、重要的函数和模块4.1、add_definitions4.2、execute_process4.3、add_dependencies4.4、install4.5、FetchContent 四、GN 重要语法1、编译Target2、预…...

CSS-5.1 Transition 过渡
本系列可作为前端学习系列的笔记,代码的运行环境是在HBuilder中,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。 HTML系列文章 已经收录在前端专栏,有需要的宝宝们可以点击前端专栏查看! 点…...
TTS:VITS-fast-fine-tuning 快速微调 VITS
1,项目概述 VITS是一种语音合成的方法,是一个完全端到端的TTS 模型,它使用预先训练好的语音编码器将文本转化为语音,并且是直接从文本到语音波形的转换,无需额外的中间步骤或特征提取。 VITS的工作流程为:…...

从虚拟仿真到行业实训再到具身智能--华清远见嵌入式物联网人工智能全链路教学方案
2025年5月23-25日,第63届中国高等教育博览会(高博会)将在长春中铁东北亚国际博览中心举办。作为国内高等教育领域规模大、影响力广的综合性展会,高博会始终聚焦教育科技前沿,吸引全国高校管理者、一线教师、教育科技企…...

告别手动绘图!2分钟用 AI 生成波士顿矩阵
波士顿矩阵作为经典工具,始终是企业定位产品组合、制定竞争策略的核心方法论。然而,传统手动绘制矩阵的方式,往往面临数据处理繁琐、图表调整耗时、团队协作低效等痛点。 随着AI技术的发展,这一现状正在被彻底改变。boardmix博思白…...

GraphPad Prism工作表的管理
《2025新书现货 GraphPad Prism图表可视化与统计数据分析(视频教学版)雍杨 康巧昆 清华大学出版社教材书籍 9787302686460 GraphPadPrism图表可视化 无规格》【摘要 书评 试读】- 京东图书 GraphPad Prism统计数据分析_夏天又到了的博客-CSDN博客 工作…...

UE 材质几个输出向量节点
PixelNormalWS...
【modelscope/huggingface 通过colab将huggingface 模型/数据集/空间转移到 modelscope并下载】
1. 准备 注册一个modelscope账号(国内的)拿到对应的访问令牌SDK/API令牌注册一个google账号, 登录colab 2. 开始干! 打开一个ipynb 安装依赖包 !pip install -qqq modelscope huggingface-hub -U选择安装git lfs !curl -s https://packag…...

告别静态UI!Guineration用AI打造用户专属动态界面
摘 要 作为智能原生操作系统 DingOS 的核心技术之一,Guineration 生成式 UI 体系深刻践行了 DingOS“服务定义软件”的核心理念。DingOS 以“一切皆服务、服务按需而取、按用付费”为设计宗旨,致力于通过智能原生能力与粒子服务架构,实现资源…...

第六届电子通讯与人工智能国际学术会议(ICECAI 2025)
在数字化浪潮中,电子通讯与人工智能的融合正悄然重塑世界的运行逻辑。技术基础的共生关系是这场变革的核心——电子通讯如同“信息高速公路”,通过5G等高速传输技术,将海量数据实时输送至AI系统,使其能够像人类神经系统般快速响应…...
【C/C++】C++并发编程:std::async与std::thread深度对比
文章目录 C并发编程:std::async与std::thread深度对比1 核心设计目的以及区别2 详细对比分析3 代码对比示例4 适用场景建议5 总结 C并发编程:std::async与std::thread深度对比 在 C 中,std::async 和 std::thread 都是用于并发编程的工具&am…...