【2025年超詳細】Git 系列筆記-4 git版本號及git相關指令運用。

系列筆記

【2025年超詳細】Git 系列筆記-1 Git簡述、Windows下git安裝、Linux下git安裝_displaying 2e+144 commits. adjust this setting in -CSDN博客

【2025年超詳細】Git 系列筆記-2 github連接超時問題解決_2025訪問github-CSDN博客

【2025年超詳細】Git 系列筆記-3 Git客戶端-Github desktop使用及IDEA集成Github、Gitee-CSDN博客


內容簡述

? ? ? ? 本小節分兩個章節,分別詳細介紹了git版本號以及git指令兩個重要知識點。詳細的列出了各種相關指令及操作以及常用的遠程倉庫例如github的相關操作、生成SSH公鑰并添加到github的方法等內容。

? ? ? ? 文字清晰、步驟明確,適合新手學習git。


第五章 版本號

、版本號概念

????????Git采用40個16進制數字(SHA-1加密算法)組成版本號,這樣生成的SHA-1哈希值作為唯一標識符來表示倉庫中的每一次提交、文件(blob)、目錄樹(tree)和標簽(tag)的狀態。

? ? ? ? 因為版本號每次提交時生成,又名提交碼。保存于 .git/objects 文件夾中,根據版本號就能找到文件。40個數字的前2位標識文件夾,后38位標識文件名。

? ? ? ? 可以使用 git log 查看提交歷史,其中包含完整的SHA-1。或者使用 git log --online 來顯示簡短的提交哈希值和提交信息。

二、版本號-文件操作

2.1.查看定位到的文件內容

????????進入到 .git/objects 文件夾中,可以根據版本號找到文件。

? ? ? ? 若此時想要使用記事本等文本編輯器查看內容,會發現內容全是亂碼,此時要使用git自帶的工具進行查看。

????????回到倉庫的根路徑,右鍵選擇?git bash here,在終端輸入??git cat-file -p 版本號?其中-p表示友好的訪問文件內容。

????????發現內容并非我們想要看到的內容,因為git在文件創建修改的過程中,創建了多個版本號。此時根據剛才生成的tree版本號的直接關聯,繼續深入即可看到我們想要看到的文件內容。

2.2.不同狀態文件會有不同的版本號

????????1、添加文件

????????當前提交的新增文件,關聯著新舊兩個版本的文件內容,這就是新增時的版本變化。

????????2、修改文件

????????修改文件同樣會與最開始的版本號內容相關聯,也新增了一個版本號對應著修改后的文件內容。

????????3、刪除文件

????????刪除后只關聯一個版本號,對應著文件狀態,但文件狀態不關聯于文件內容了。但本質上并未真正刪除這個文件,其實是一個歷史版本,依舊存在于倉庫之中。

三、版本號-分支操作

3.1.分支操作對版本號的影響

????????最新的版本號:.git文件夾中有一個名叫HEAD的文件,里面存儲的內容為一個文件路徑ref: refs/heads/main,此時指向的文件內容就是最新的版本號。

????????此時在github desktop中創建一個新的分支,在heads文件夾中也能找到新創建的分支。

3.2.分支操作的版本號變化

????????不同的分支指向不同的版本,互相就不會有太大的影響

3.3.分支切換后變化

????????切換分支之后,git會將對應版本的文件提取到倉庫中。


第六章 Git指令

一、Git常用指令介紹

二、倉庫操作指令

2.1.查看git版本

? ? ? ? 輸入以下指令,查看git版本。

git -v

2.2.創建倉庫

????????在終端界面輸入以下指令,完成本地倉庫的初始化。此時ref、objects等文件夾下都為空,因為此時只完成初始化,當前沒有提交操作,而使用github desktop等git工具會自動進行一個初始化的提交,生成ref等文件夾。

git init 倉庫名

2.3.clone項目

????????在終端界面輸入以下指令即可從遠程倉庫clone項目。

git clone 克隆地址
2.3.1.github例子

????????以github為例,進入感興趣的項目頁面,找到圖片中位置的綠色Code下拉列表,點擊下拉列表,即會出現clone所需要的URL,

? ? ? ? 選擇你的克隆方式,HTTPs URL 或者 SSH URL,選擇對應的選項,然后復制地址,回到終端,使用指令克隆即可。

(注意)Linux推薦使用SSH方式,否則將本地倉庫推送到遠程倉庫時可能會一直出現提示輸入github賬戶密碼,但是無法推送的情況。

2.3.2.gitee例子

????????gitee克隆地址如圖所示,選擇克隆或下載,復制對應URL到指令中即可完成clone。

三、文件操作指令

3.1.git status查看狀態

????????通過以下指令可以查看當前git狀態。

git status

3.2.git add添加到暫存區

????????當有文件新增,但是與倉庫未追蹤時,會處于untracked(未跟蹤)狀態。

????????需要通過??git add?指令添加到暫存區,之后進行比對操作。通過?git add *.txt?,可以將所有類型為txt的文件添加到暫存區。

3.3.git rm從暫存區移動回工作區

????????若想將文件從暫存區放回工作區域可以使用RM指令,例如git rm –cached test01.txt,此時文件重新回到未跟蹤狀態。

3.4.commit從暫存區提交到倉庫

????????通過git commit -m 備注內容,可以將文件提交到本地倉庫。

3.5.git log 查看日志

3.6.刪除

????????刪除其實本質上也是一種提交,只是文件引用的時候不在引用這個文件了,所以也使用git add指令,將刪除的狀態添加到暫存區。

3.7.誤刪除處理相關指令

3.7.1.恢復刪除文件

????????使用?git restore 文件名 指令,將錯誤操作的文件恢復。但若是已經將刪除提交了,此時直接恢復就已經恢復不了。

git restore 文件名
3.7.2.重置版本

????????可此時可以考慮使用?git reset –hard 版本號?指令,將版本重置到開始的提交。但是會將開發過程中的提交也重置,這種操作并不好。

git reset –hard 版本號?
3.7.2.撤銷操作

????????通過?git revert 版本號?指令可以用于撤銷一次或多次操作,并記錄新的提交將這些撤銷的操作記錄下來。相當于返回上一步的感覺,等同于將刪除前的版本進行了一次新的提交,所以不會影響過程中的提交記錄。

git revert 版本號

四、分支操作指令

4.1.創建新分支

? ? ? ? 使用以下指令,可以創建一個新分支。

git branch 分支名

(注意)需要注意的是,在進行其他分支的創建之前,需要有提交操作,將默認分支提交打到本地倉庫,有了默認分支之后才可以進行其他分支的創建。

4.2.查看分支

? ? ? ? 使用以下指令,可以查看當前有的分支。

git branch -v

4.3.切換分支

? ? ? ? 使用以下指令,可以切換分支到你希望進行操作的分支。當前所處的分支會被*標記

git checkout 分支名

4.4.創建并切換分支

????????使用以下指令,可以直接創建并切換到新分支。

git checkout -b 分支名

4.5.刪除分支

????????使用以下指令,可以刪除分支。

git branch -d 分支名

4.5.合并分支

???????使用以下指令,可以將分支名所代表的分支合并到主分支。合并分支時,需要將當前分支切換為主分支。

git merge 分支名

????????當出現 MERGING 提示的時候,證明合并過程中出現了問題。通過人工判斷合并出錯的內容,去除掉沖突內容,再次提交即可。

五、標簽相關指令

5.1.創建標簽

????????使用?git tag 標簽名(需使用英文) 版本號 指令,可以為版本創建標簽,此后就可直接使用標簽名對應版本。類似于git log 標簽1,它顯示的內容就是標簽1對應的版本日志。

????????ps:標簽不能重復。

5.2.刪除標簽

? ? ? ? 使用以下指令,即可刪除標簽。

git tag -d 標簽名

六、遠程倉庫操作指令

6.1.關聯遠程倉庫

????????使用以下指令,為本地倉庫配置URL。????????

git remote add 英文名稱 URL

????????遠程倉庫中自帶配置文件,在 .git config文件中有一段數據為[remote “origin”],此處會存有遠程倉庫的url與fetch。在使用的過程中,可以使用“origin”這個名稱代替我們的URL。

????????實際開發中,有些項目不提供https格式的路由,而是SSH等格式,則需要到這個文件中,將URL修改成所需要的地址。

????????若為本地創建的倉庫,沒有URL,則可以通過指令git remote add 英文名稱 URL,為其配置url。

????????還可以通過git remote rename/remove來修改名稱或者刪除。

6.2.本地推送到遠程倉庫-PUSH

6.2.1.推送到遠程倉庫
ssh keygen -t ras C 地址

????????在本地倉庫中add后commit提交到本地倉庫,本地倉庫提交完成后,就可以使用?git push 地址?的指令,將本地倉庫的內容推送到遠程倉庫。若是已經配置了SSH文件,則直接使用git push指令即可推送到對應的遠程倉庫。

git push 地址
6.2.2.配置SSH文件

????????如果URL的格式為SSH格式,則還需要安全認證并配置一下。

????????使用以下指令,可以為倉庫配置公鑰文件,將公鑰文件中的內容,復制到遠程倉庫的公鑰界面,添加到其中即可使用。

ssh keygen -t ras C 地址
6.2.3.公鑰文件所處位置

? ? ? ? Windows:c盤--->用戶--->.ssh(安全認證文件夾)--->id_ras.pub(文件)

? ? ? ? Linux:根目錄/.ssh/id_rsa.pub

cd ~/.ssh
cat id_rsa.pub

????????使用文本編輯器將公鑰內容復制起來,在遠程倉庫創建SSH Key。

6.2.4.添加公鑰到遠程倉庫-以github為例

????????①前往github的個人頁面,在左上角點擊頭像,在下拉列表中選擇Settings選項,進入設置頁面。

? ? ? ? ②在設置頁面,找到 SSH and GPG keys 選項,點擊進入頁面。

????????

? ? ? ? ③選擇右上角的NEW SSH Key,新建一個SSH key。

? ? ? ? ④為這個公鑰取一個標題,將公鑰內容粘貼到Key框中,點擊Add SSH Key按鈕,完成SSH公鑰的創建。

6.2.PULL(遠程倉庫拉取到本地)

6.2.1.pull指令

? ? ? ? 使用以下指令,可以將遠程倉庫拉取到本地。其中origin為遠程倉庫名稱,按需更換。? ??

git pull origin
6.2.2.pull與clone與fetch區別

git clone:首次下載整個倉庫到本地。只在項目開始時執行一次。

git fetch:?安全獲取遠程的更新信息不改變工作目錄、暫存區、當前本地分支內容

git pull:獲取遠程倉庫更新內容并立即合并到本地倉庫。改變當前本地分支和工作目錄。相當于fetch+merge的組合操作。


總結:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/84149.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/84149.shtml
英文地址,請注明出處:http://en.pswp.cn/web/84149.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

圖像特征檢測算法SuperPoint和SuperGlue

SuperPoint 背景與概述 :SuperPoint 是一個自監督的全卷積神經網絡,用于提取圖像中的興趣點及其描述子。它在 2018 年由 Magic Leap 提出,通過在合成數據集上預訓練一個基礎檢測器 MagicPoint,然后利用同胚適應技術對真實圖像數據…

nginx 和 springcloud gateway cors 跨域如何設置

在跨域資源共享(CORS)配置中,Nginx 和 API Gateway(如Spring Cloud Gateway、Kong等)是兩種常見的解決方案,它們的配置邏輯和適用場景有所不同。以下是詳細對比和配置示例: 一、核心區別 維度NginxAPI Gateway定位反向代理/Web服務器微服務流量入口配置位置基礎設施層應…

電路筆記(信號):一階低通RC濾波器 一階線性微分方程推導 拉普拉斯域表達(傳遞函數、頻率響應)分析

目錄 RC 低通濾波器電路一階線性微分方程推導拉普拉斯域表達(傳遞函數)傳遞函數 H ( s ) H(s) H(s)頻率響應(令 s j ω s j\omega sjω)幅頻特性:相位特性:Bode 圖(線性系統頻率響應&#x…

【Git】刪除遠程分支時,本地分支還能看到

當遠程倉庫的分支被刪除后,本地通過 git branch -a 或 git remote show origin 仍能看到這些分支的引用,是因為本地存儲的遠程跟蹤分支(位于 refs/remotes/origin/)未被同步更新。以下是解決方法: 解決方案&#xff1…

Cubase 通過 MIDIPLUS MIDI 鍵盤進行走帶控制的設置方法

第一步,在官網下載xml配置文件。 https://midiplus.com/upload/202101/29/Xpro & Xpro_mini控制腳本(Cubase).zip 第二步,Cubase中按如圖步驟添加映射。 將MIDI鍵盤連接到電腦后打開Cubase軟件,點選菜單“工作室”->“工作室設置”&…

第十八章 Linux之Python定制篇——Python開發平臺Ununtu

1. Ubuntu介紹 Ubuntu(友幫拓、優般圖、烏班圖)是一個以桌面應用為主的開源GUN/Linux操作系統,Ubuntu基于GUN/Linux,支持x86、amd64(即x64)和ppc架構,有全球專業開發團隊(Canonical…

推薦輕量級文生視頻模型(Text-to-Video)

1. ModelScope T2V by 阿里達摩院(推薦) 模型名:damo/text-to-video-synthesis 輸入:一句文字描述(如:"a panda is dancing") 輸出:2秒視頻(16幀&#xff0c…

流編輯器sed

sed簡介 sed是一種流編輯器,處理時,把當前處理的行存儲在臨時緩沖區中,稱為模式空間,接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下行,這樣不斷重復&#xf…

商用密碼基礎知識介紹(上)

一、密碼的基礎知識 1、密碼分類 根據《中華人民共和國密碼法》,國家對密碼實行分類管理,分為密碼分為核心密碼、普通密碼和商用密碼。 (1)核心密碼、普通密碼 核心密碼、普通密碼用于保護國家秘密信息,核心密碼保護…

PROFINET主站S7-1500通過協議網關集成歐姆龍NJ系列TCP/IP主站

一、項目背景 某大型新能源電池生產企業,致力于提升電池生產的自動化水平和智能化程度。其生產線上,部分關鍵設備采用了不同的通信協議。在電池生產的前段工序,如原材料攪拌、涂布等環節,使用了西門子S7-1500系列PLC作為ROFINET協…

Vue3 + TypeScript + Element Plus + el-input 輸入框列表按回車聚焦到下一行

應用效果:從第一行輸入1,按回車,聚焦到第二行輸入2,按回車,聚焦到第三行…… 一、通過元素 id,聚焦到下一行的輸入框 關鍵技術點: 1、動態設置元素 id 屬性為::id"input-appl…

FramePack 全面測評:革新視頻生成體驗

在 AI 視頻生成領域,FramePack 自問世便備受矚目,它憑借獨特的技術架構,號稱能打破傳統視頻生成對高端硬件的依賴,讓普通電腦也能產出高質量視頻。此次測評,我們將全方位剖析 FramePack,探究它在實際應用中…

html中的table標簽以及相關標簽

表格標簽可以通過指定的標簽完成數據展示 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>表格標簽</title> </head> <body><table border"2"><!-- tr是表行 r…

springboot+vue3+vue-simple-uploader輕松實現大文件分片上傳Minio

最近在寫視頻課程的上傳&#xff0c;需要上傳的視頻幾百MB到幾個G不等&#xff0c;普通的上傳都限制了文件的大小&#xff0c;況且上傳的文件太大的話會超時、異常等。所以這時候需要考慮分片上傳了&#xff0c;把需要上傳的視頻分成多個小塊上傳到&#xff0c;最后再合并成一個…

AI 重構代碼實戰:如何用飛算 JavaAI 快速升級遺留系統?

在企業數字化進程中&#xff0c;遺留系統如同陳舊的基礎設施&#xff0c;雖承載著重要業務邏輯&#xff0c;但因技術落后、架構復雜&#xff0c;升級維護困難重重。飛算 JavaAI 的出現&#xff0c;為遺留系統的二次開發帶來了新的轉機&#xff0c;其基于智能分析與關聯項目的技…

鴻蒙運動開發實戰:打造專屬運動視頻播放器

##鴻蒙核心技術##運動開發##Media Kit&#xff08;媒體服務&#xff09;# 在當今數字化時代&#xff0c;運動健身已經成為許多人生活的一部分。今天我將在應用中添加視頻播放器&#xff0c;幫助用戶在運動前、運動后更好地進行熱身和拉伸。這篇文章將從代碼核心點入手&#xf…

一個包含15個界面高質量的電商APP客戶端UI解決方案

一個包含15個界面高質量的電商APP客戶端UI解決方案 您可以將其用于電商APP應用項目。包含一系列完整的界面設計元素&#xff0c;包括歡迎頁、登錄、注冊、首頁、產品分類、產品詳情、尺碼選擇、購物車、訂單、支付&#xff0c;覆蓋電商APP的大部分界面。每個部分都精心設計&…

執行 PGPT_PROFILES=ollama make run下面報錯,

執行 PGPT_PROFILESollama make run 下面報錯&#xff0c; File "/home/powersys/.cache/pypoetry/virtualenvs/private-gpt-ZIwX6JeM-py3.11/lib/python3.11/site-packages/qdrant_client/http/api_client.py", line 108, in send_inner raise ResponseHandling…

【Docker基礎】Docker核心概念:命名空間(Namespace)之User詳解

目錄 引言 1 基礎概念回顧 1.1 命名空間概述 1.2 命名空間的類型 2 User命名空間詳解 2.1 基本概念 2.2 工作原理 User命名空間的工作流程 User命名空間架構 3 應用場景 4 配置與使用 5 總結 引言 隨著容器化技術的廣泛應用&#xff0c;Docker已成為現代軟件開發、…

DIDCTF-應急響應

前言 最近在學長分享應急響應與電子取證的知識&#xff0c;又恰逢期末周沒有課&#xff0c;記錄自己在取證道路的成長。 linux-basic-command 下載附件&#xff0c;得到Apache 服務器訪問日志文件&#xff0c;根據題目要求找出排名前五的ip&#xff0c;題目提示寫腳本&#…