Git命令汇总(自用,持续更新update 5/23)

news2025/5/23 15:33:02

文章目录

  • 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,但是此操作仅适用于个人分支,用在主分支的时候务必小心!!!

  1. 添加上游仓库并同步最新代码

    git remote add upstream https://github.com/Echo-Nie/Demo.git
    git fetch upstream develop
    
  2. 基于上游的develop创建新分支

    git checkout -b clean-PRtest upstream/develop
    
  3. 应用本地修改到新分支

    • 方法一:Cherry-pick
      我个人常用的是这个,首先找到localTest分支的提交哈希
      (使用git log localTest查看),然后:

       git cherry-pick <hash>
      
    • 方法二:合并修改内容
      localTest的更改合并到clean-test

      git merge localTest --squash  # 合并并压缩为一个提交
      git commit -m "提交信息"
      
  4. 强制推送到远程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 切换模式

  1. 正常模式切换到插入模式:如果需要编辑文本内容(如更改提交信息),首先确保自己处于 Vim 的 Normal Mode 。如果不是,请按 Esc 键退出其他模式。然后按下 i 键进入 Insert Mode 。此时,

  2. 从可视模式或命令行模式切换到插入模式
    如果当前处于可视模式(Visual Mode)或命令行模式(Command-line Mode),请先按 Esc 键返回到正常模式,然后再按 iao 等键进入插入模式。具体来说,

    • i:在光标所在位置前开始插入;
    • a:在光标所在位置后开始插入;
    • o:在当前行下方新开一行并进入插入模式。

4.2 保存与退出

  1. 保存更改:完成文本编辑后,按 Esc 键回到正常模式。要保存所做的更改而不退出 Vim 编辑器,请输入 :w 并按回车键。

  2. 退出编辑器:若要退出编辑器但不保存更改,请输入 :q! 并按回车键(注意这会丢弃所有未保存的更改)。如果希望保存更改并退出,则输入 :wq 或简写为 :x 并按回车键。

4.3 注意Rebase

  • 在成功保存并退出 Vim 编辑器后,根据您的操作,Git 可能会提示您继续 rebase 过程。这时,您需要运行 git rebase --continue 命令来完成整个 rebase 操作。此步骤可能需要重复多次,直到处理完所有的提交。

  • 重要的是,在执行 rebase 操作之前,请确保理解 rebase 对提交历史的影响,并确认它不会影响团队成员的工作流程。特别是当涉及到已推送至远程仓库的提交时,应格外小心,因为 rebase 会改变提交历史。


5. 合并多个commit

  1. 合并最近 n 个提交,运行:
     git rebase -i HEAD~n
  1. 编辑提交列表

    • 在打开的文本中,将你想要合并的所有提交前的pick改为squash或简写s,除了第一个提交保持pick不变。
          pick abcdefg 提交信息1
          squash hijklmn 提交信息2
          squash opqrstu 提交信息3
      
  2. 保存并退出编辑器(Vim为例:按Esc, 输入:wq, 按回车)。

  3. 编辑合并后的提交信息
    Git会再次打开编辑器让你编辑新的合并提交的信息。编辑后,再次保存并退出。

  4. 强制推送更新(如果已推送到远程仓库)

    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握手的主要目的是:验证服务器的身份,确保连接到的是合法的远程仓库;客户端和服务器协商生成会话密钥,用于后续的数据加密传输。

握手过程通常包括以下步骤:

  1. 客户端问候:客户端向服务器发送支持的TLS版本、加密算法等信息。
  2. 服务器问候:服务器选择一种加密算法,并返回自己的证书用于身份验证。
  3. 密钥交换:客户端和服务器根据选定的加密算法协商生成会话密钥。
  4. 完成握手:双方确认握手完成,开始使用会话密钥进行加密通信。

报错原因

当出现“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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2383984.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

window xampp apache使用腾讯云ssl证书配置https

下载腾讯云ssl证书&#xff1a; 编辑Apache根目录下 conf/httpd.conf 文件&#xff1a; #LoadModule ssl_module modules/mod_ssl.so和#Include conf/extra/httpd-ssl.conf&#xff0c;去掉前面的#号注释。 编辑Apache根目录下 conf/httpd-ssl.conf 文件&#xff1a; <Vi…

逆向音乐APP:Python爬虫获取音乐榜单 (1)

1. 引言 在数字音乐时代&#xff0c;许多平台如音乐有榜单&#xff0c;限制非付费用户访问高音质或独家内容。然而&#xff0c;从技术研究的角度来看&#xff0c;我们可以通过逆向工程和Python爬虫技术解音乐的API接口&#xff0c;获取付费音乐的播放链接。 2. 技术准备 在当…

支持向量存储:PostgresSQL及pgvector扩展详细安装步骤!老工程接入RAG功能必备!

之前文章和大家分享过&#xff0c;将会出一篇专栏&#xff08;从电脑装ubuntu系统&#xff0c;到安装ubuntu的常用基础软件&#xff1a;jdk、python、node、nginx、maven、supervisor、minio、docker、git、mysql、redis、postgresql、mq、ollama等&#xff09;&#xff0c;目前…

idea常用配置 properties中文输出乱码

propertis配置中文乱码 源码和编译后的都是中文 程序输入效果 idea配置3处 程序输出效果 自定义注释模板 IDEA 中有以下两种配置模板。 File and Code Templates Live Templates File and Code Templates File and Code Templates 用来配置文件和代码模板&#xff0c;即…

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组件。 基础配置如下&#xff1a;&#xff08;暂时勾选Looping实时可以看生成效果&#xff0c;后面反选即可&am…

第十节第六部分:常见API:DateTimeFormatter、Period、Duration

DateTimeFormatter类常用方法 Period类常用方法 Duration类常用方法 总结 代码&#xff1a; 代码一&#xff1a;DateTimeFormatter类常用方法 package com.itheima.jdk8_time;import java.time.LocalDateTime; import java.time.format.DateTimeFormatter;public class DateT…

如何在VSCode中更换默认浏览器:完整指南

引言 作为前端开发者&#xff0c;我们经常需要在VSCode中快速预览HTML文件。默认情况下&#xff0c;VSCode会使用系统默认浏览器打开文件&#xff0c;但有时我们可能需要切换到其他浏览器进行测试。本文将详细介绍如何在VSCode中更换默认浏览器。 方法一&#xff1a;使用VSCo…

【机器人】复现 3D-Mem 具身探索和推理 | 3D场景记忆 CVPR 2025

3D-Mem 是用于具体探索和推理的3D场景记忆&#xff0c;来自CVPR 2025. 本文分享3D-Mem复现和模型推理的过程&#xff5e; 下面是一个推理和选择识别的结果&#xff1a; 看一下机器人探索的效果&#xff1a; 下面是真实环境下&#xff0c;官方跑的demo&#xff0c;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 过渡

本系列可作为前端学习系列的笔记&#xff0c;代码的运行环境是在HBuilder中&#xff0c;小编会将代码复制下来&#xff0c;大家复制下来就可以练习了&#xff0c;方便大家学习。 HTML系列文章 已经收录在前端专栏&#xff0c;有需要的宝宝们可以点击前端专栏查看&#xff01; 点…

从虚拟仿真到行业实训再到具身智能--华清远见嵌入式物联网人工智能全链路教学方案

2025年5月23-25日&#xff0c;第63届中国高等教育博览会&#xff08;高博会&#xff09;将在长春中铁东北亚国际博览中心举办。作为国内高等教育领域规模大、影响力广的综合性展会&#xff0c;高博会始终聚焦教育科技前沿&#xff0c;吸引全国高校管理者、一线教师、教育科技企…

告别手动绘图!2分钟用 AI 生成波士顿矩阵

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

GraphPad Prism工作表的管理

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

告别静态UI!Guineration用AI打造用户专属动态界面

摘 要 作为智能原生操作系统 DingOS 的核心技术之一&#xff0c;Guineration 生成式 UI 体系深刻践行了 DingOS“服务定义软件”的核心理念。DingOS 以“一切皆服务、服务按需而取、按用付费”为设计宗旨&#xff0c;致力于通过智能原生能力与粒子服务架构&#xff0c;实现资源…

第六届电子通讯与人工智能国际学术会议(ICECAI 2025)

在数字化浪潮中&#xff0c;电子通讯与人工智能的融合正悄然重塑世界的运行逻辑。技术基础的共生关系是这场变革的核心——电子通讯如同“信息高速公路”&#xff0c;通过5G等高速传输技术&#xff0c;将海量数据实时输送至AI系统&#xff0c;使其能够像人类神经系统般快速响应…

解决vscode在任务栏显示白色图标

长久不用&#xff0c;不知道怎么着就显示成白色图标&#xff0c;虽然不影响使用&#xff0c;但是看起来不爽 问了豆包&#xff0c;给了个解决方法&#xff1a; 1、打开隐藏文件&#xff0c; 由于图标缓存文件是隐藏文件&#xff0c;首先点击资源管理器中的 “查看” 菜单&am…

架构思维:构建高并发扣减服务_分布式无主架构

文章目录 Pre无主架构的任务简单实现分布式无主架构 设计和实现扣减中的返还什么是扣减的返还返还实现原则原则一&#xff1a;扣减完成才能返还原则二&#xff1a;一次扣减可以多次返还原则三&#xff1a;返还的总数量要小于等于原始扣减的数量原则四&#xff1a;返还要保证幂等…

uni-app学习笔记九-vue3 v-for指令

v-for 指令基于一个数组来渲染一个列表。v-for 指令的值需要使用 item in items 形式的特殊语法&#xff0c;其中 items 是源数据的数组&#xff0c;而 item 是迭代项的别名&#xff1a; <template><view v-for"(item,index) in 10" :key"index"…