GitGithub相关(自用,持续更新update 8/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
  • Github相关
    • 1. GIthub中的一些缩写 LGTM !
    • 2. Issue中的一些 Highlight


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. 合并最近 nnn 个提交,n<=20n<=20n<=20

    git rebase -i HEAD~n
    
  2. 编辑提交列表

    • 在打开的文本中,将你想要合并的所有提交前的pick改为squash或简写s,除了第一个提交保持pick不变。

      pick abcdefg 提交信息1
      squash hijklmn 提交信息2
      squash opqrstu 提交信息3
      
  3. 保存并退出编辑器(Vim为例:按Esc, 输入:wq, 按回车)。

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

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

    git push origin lcoal-branch:develop --force
    
     git push origin lcoal-branch:develop --f
    

强制推送会覆盖远程仓库的历史,所以如果其他人也在基于这些提交工作,可能会导致冲突。


问题一: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

Github相关

1. GIthub中的一些缩写 LGTM !

最近经常看到一些迷之缩写,感觉挺有意思的,但是有时候看到一些没见过的缩写还是有点懵逼,不过缩写确实也是很方便去review,这里就记录汇总一下;顺便加了一些git的基操单词(加粗的是我遇到比较多的)。

参考:
https://blog.csdn.net/liwenlong_only/article/details/104004928
https://blog.csdn.net/misayaaaaa/article/details/102684348
https://github.com/orgs/community/discussions/16925

缩写含义说明
PRPull Request拉取请求,用于向其他项目提交代码
LGTMLooks Good To Me代码已经过review,可以合并
SGTMSounds Good To Me与LGTM意思相近,表示通过了review
WIPWork In Progress如果你有个改动很大的 PR,可以在写了一部分的情况下先提交,然后在标题里写上 WIP,以告诉项目维护者这个功能还未完成,方便提前 review 部分已经写好的代码
PTALPlease Take A Look你过来瞅瞅?
TBRTo Be Reviewed提示维护者进行review
TL;DRToo Long; Didn’t Read太长懒得看,通常用于文档的简略描述前
TBDTo Be Done/Defined/Discussed/Decided/Determined根据语境不同意义有所区别,但一般都是还没搞定的意思
BTWBy The Way顺便说一下
FYIFor Your Information供你参考
CCCarbon Copy抄送,用于提及某人以便其了解相关信息
APIApplication Programming Interface应用程序编程接口
CI/CDContinuous Integration/Continuous Deployment持续集成/持续部署
CRCode Review代码审查
DocDocument文档
Fork创建一个项目的副本到自己的账户下
RepoRepository存储代码和其他资源的仓库
HEAD指向当前检出分支的最新提交
Merge将一个分支的更改合并到另一个分支中
Rebase将一系列提交应用到另一个基础分支上,通常用于整理提交历史
Issue用户报告的问题或者待办事项,可以是Bug报告、功能请求等
Label用来标记Issues或PRs的分类标签,帮助组织和跟踪任务
RFCRequest For Comments请求意见稿,一般是一个Markdown文件

在这里插入图片描述

2. Issue中的一些 Highlight

> [!NOTE]  
> Highlights information that users should take into account, even when skimming.> [!TIP]
> Optional information to help a user be more successful.> [!IMPORTANT]  
> Crucial information necessary for users to succeed.> [!WARNING]  
> Critical content demanding immediate user attention due to potential risks.> [!CAUTION]
> Negative potential consequences of an action.

在这里插入图片描述

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

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

相关文章

改华为智能插座为mqtt本地控制

华为插座1. 打开插座后盖板&#xff0c;取出主板2.取下主板上的82663焊上esp32c3 supermini,热熔胶粘上&#xff0c;焊接电源正负极&#xff0c;及第5脚4.取下电源板阻容降压全部。因此电路不能提供足够电流给esp32工作。5.外接小型ac-dc电源5v6.刷代码Mqtt插座成品特别提醒&am…

2.4G和5G位图说明列表,0xff也只是1-8号信道而已

根据你提供的 SDK 代码&#xff0c;0xFF 仅表示启用 1 到 8 号信道&#xff08;即 2.4GHz 频段的信道&#xff09;。这是因为每个 BIT(x) 是一个位标志&#xff0c;0xFF 在二进制中对应的是 11111111&#xff0c;即启用信道 1 至 8。对于 5GHz 信道&#xff0c;你需要确保传输的…

【网络运维】Shell 脚本编程: for 循环与 select 循环

Shell 脚本编程&#xff1a; for 循环与 select 循环 循环语句命令常用于重复执行一条指令或一组指令&#xff0c;直到条件不再满足时停止&#xff0c;Shell脚本语言的循环语句常见的有while、until、for及select循环语句。 本文将详细介绍Shell编程中for循环和select循环的各种…

线性回归入门:从原理到实战的完整指南

线性回归入门&#xff1a;从原理到实战的完整指南线性回归是机器学习中最基础、最实用的算法之一 —— 它通过构建线性模型拟合数据&#xff0c;不仅能解决回归预测问题&#xff0c;还能为复杂模型&#xff08;如神经网络、集成算法&#xff09;提供基础思路。今天我们从 “直线…

积分排行样式

这个排名需要考虑不同child的位置<view class"pm-top"><!--背景 podiumtree 或 podium--><image class"podium-bg" :src"podium" mode"widthFix"></image><view class"podium-list"><vi…

【机器学习入门】1.1 绪论:从数据到智能的认知革命

引言&#xff1a;什么是机器学习&#xff1f;想象一下&#xff0c;当你在邮箱中看到一封邮件时&#xff0c;系统能自动识别出它是垃圾邮件&#xff1b;当你在购物网站浏览商品时&#xff0c;平台能精准推荐你可能感兴趣的物品&#xff1b;当自动驾驶汽车行驶在道路上时&#xf…

iptables 防火墙技术详解

目录 前言 1 iptables概述 1.1 Netfilter与iptables关系 1.1.1 Netfilter 1.1.2 iptables 1.1.3 两者关系 2 iptables的表、链结构 2.1 四表五链结构介绍 2.1.1 基本概念 2.1.2 四表功能*** 2.1.3 五链功能*** 2.2 数据包过滤的匹配流程*** 2.2.1 规则表应用顺序*…

SOME/IP-SD报文中 Entry Format(条目格式)-理解笔记3

&#x1f3af; 一、核心目标&#xff1a;解决“找服务”的问题 想象一下&#xff0c;一辆现代汽车里有上百个智能设备&#xff08;ECU&#xff09;&#xff0c;比如&#xff1a; 自动驾驶控制器&#xff08;需要“车速”服务&#xff09;中控大屏&#xff08;需要“导航”和“音…

AAA服务器技术

一、AAA认证架构理解AAA基本概念与架构先介绍&#xff1a; AAA是什么&#xff08;认证、授权、计费&#xff09;重点理解&#xff1a; 为什么需要AAA&#xff1f;它的三大功能分别解决什么问题&#xff1f;关联后续&#xff1a; 这是所有后续协议&#xff08;RADIUS/TACACS&…

客户生命周期价值帮助HelloFresh优化其营销支出

1 引言 了解客户的长期价值对HelloFresh至关重要。客户生命周期价值&#xff08;CLV&#xff09;代表了客户与公司关系的整个过程中所产生的总价值。通过预测这一指标&#xff0c;我们可以更明智地决定如何分配营销资源&#xff0c;以获得最大的影响。 在本文中&#xff0c;我…

Vue 2 中的 v-model和Vue3中的v-model

你问的是 v-model&#xff08;不是 v-modal 吧 &#x1f604;&#xff09;&#xff0c;我来帮你梳理一下 Vue2 和 Vue3 的 v-model 区别。&#x1f539; Vue 2 中的 v-model语法<input v-model"msg">v-model 本质上是 语法糖&#xff0c;等价于&#xff1a;<…

朴素贝叶斯算法学习总结

一、贝叶斯理论基础 1. 贝叶斯思想的核心 贝叶斯算法由 18 世纪英国数学家托马斯・贝叶斯提出&#xff0c;其核心是解决 “逆概” 问题 —— 区别于 “正向概率” 已知条件求结果概率的思路&#xff0c;逆概是通过观测到的结果&#xff0c;反推导致该结果的原因概率。比如在日常…

【Protues仿真】基于AT89C52单片机的舵机和直流电机控制

目录 1 PWM信号 1.1 三个最基本的量 1.1.1 周期 T&#xff08;Period&#xff09; 1.1.2脉冲宽度 Th&#xff08;High Time&#xff09; 1.1.3占空比 D&#xff08;Duty Cycle&#xff09; 1.2 为什么要用 PWM 1.3 关键参数对照表 1.4单片机里产生 PWM 的四种套路 1.4…

vue家教预约平台设计与实现(代码+数据库+LW)

摘要 随着互联网技术的不断发展&#xff0c;在线家教平台逐渐成为家长和学生选择教育服务的重要途径。尤其在现代社会中&#xff0c;个性化教育需求日益增多&#xff0c;传统的线下家教形式已无法完全满足广大家长和学生的需求。在线家教平台不仅能为学生提供更多选择&#xf…

AI系列 - Claude 与 Qwen 模型自动补全对比:谁更胜一筹?

Claude 与 Qwen 模型自动补全对比&#xff1a;谁更胜一筹&#xff1f; 导读&#xff1a;随着大语言模型的快速发展&#xff0c;自动补全功能在代码编写、文本生成等领域变得越来越重要。本文将对比 Anthropic 的 Claude 系列模型与 Alibaba 的 Qwen 系列模型在自动补全任务中的…

【ARM】MDK在debug模式下断点的类型

1、 文档目标本文旨在深入探讨嵌入式开发环境中&#xff08;以MDK为例&#xff09;调试模式下的断点类型&#xff0c;帮助开发者全面了解不同断点的工作原理及其应用场景。通过掌握这些知识&#xff0c;开发者可以更高效地进行代码调试&#xff0c;快速定位和解决问题。2、 问题…

CF2133C 下界(The Nether)

CF2133C 下界&#xff08;The Nether&#xff09; 洛谷题目传送门 题目描述 这是一道交互题。 最近发现下界&#xff08;The Nether&#xff09;后&#xff0c;Steve 在他的世界中建造了一个由 nnn 个下界传送门组成的网络&#xff0c;每个传送门位于不同的位置。 每个传送…

无线USB转换器TOS-WLink网盘更新--TOS-WLink使用帮助V1.0.pdf

1&#xff0c;编写原因 随着当前视频越来越多&#xff0c;对于首次接触到WLink的朋友、首次开箱使用的朋友不够友好&#xff0c;常常感觉无从下手&#xff0c;为此编写了TOS-WLink使用帮助V1.0.pdf&#xff1b;按照文档进行一步一步驱动安装&#xff0c;配网&#xff1b;文档中…

Redis面试精讲 Day 29:Redis安全防护与最佳实践

【Redis面试精讲 Day 29】Redis安全防护与最佳实践 在“Redis面试精讲”系列的第29天&#xff0c;我们聚焦于一个在生产环境中至关重要、却常被开发者忽视的核心主题——Redis的安全防护与最佳实践。随着Redis广泛应用于高并发、分布式系统中&#xff0c;其暴露在公网或内网中…

【数据结构】LeetCode160.相交链表 138.随即链表复制 牛客——链表回文问题

文章目录一、相交链表问题问题描述解题思路分析思路一&#xff1a;暴力遍历法思路二&#xff1a;双指针对齐法&#xff08;最优解&#xff09;二、链表的回文结构问题描述解题思路完整代码三、 随即链表的复制问题描述解题思路复杂度分析一、相交链表问题 问题描述 给定两个单…