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
英文地址,請注明出處:http://en.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;二、鏈表的回文結構問題描述解題思路完整代碼三、 隨即鏈表的復制問題描述解題思路復雜度分析一、相交鏈表問題 問題描述 給定兩個單…