Git 學習筆記

這篇筆記記錄了我在git學習中常常用到的指令,方便在未來進行查閱。此篇文章也會根據筆者的學習進度持續更新。

網站分享

Git 常用命令大全

Learn Git Branching

基礎

$ git init? ? ?//在當前位置配置一個git版本庫

$ git add <file>? ? ?//將文件添加至暫存區

$ git add .? ? ? ? ? //將文件夾中的所有內容添加至暫存區

$ git commit? ? ? ? ?//將暫存區的內容提交至庫中

$ git commit -m "<注釋內容>"? ? ?//提交的同時添加注釋(即提交信息)

$ git status? ? //查看暫存區中的內容

$ git log? ? //查看提交記錄

其實每一個提交記錄都可以看作一個“快照節點”,像一個相片一樣記錄的當前庫內容的所有細節,方便我們恢復到對應提交節點的內容。

每一個這樣的節點對應一個又長又復雜的哈希值,用來索引這些提交。

這個過程中可能會進入Vim編輯器,在按下ESC后切換至命令行模式,輸入“:wq”即可保存并退出。

git log展示是可能會進入less分頁器,按下q鍵即可退出。

分支

在我們的提交樹中,總是有一個名為HEAD的指針指向我們的提交,其所指的地方常常使我們指令所作用的地方。HEAD 總是指向當前分支上最近一次提交記錄。大多數修改提交樹的 Git 命令都是從改變 HEAD 的指向開始的。

$ git branch? ? ? //展示所有分支,帶*的是HEAD所在的位置

$ git branch <branch_name>? ? ? //創建分支,默認為當前提交上

$ git branch <branch_name> <hash>? ? ? //在指定提交節點上創建分支

$ git branch -d <branch_name>? ? ? //將分支刪除

$ git branch -f <branch_name> <hash>? ? ? ?//將分支強制移動到某提交上

其實HEAD的實質也是一個哈希值,一般在需要用到哈希值時,可以使用相對位置。如HEAD~就是HEAD的父提交節點。HEAD~2就是父的父。HEAD^就是父。HEAD^2是第二個父(多個父節點時)。在使用merge合并兩個分支后,“將目標分支并入當前分支”的“當前分支”就是第一個父parent,“目標分支”就是第二個父,即^2。

$ git merge <branch_name>? ? ? //將目標分支并入當前分支(多條路徑)

$ git rebase <branch_name>? ? ? //將目標分支嵌入當前分支(一條路徑)

$ git rebase <branch_name_1> <branch_name_2>? //將分支1嵌入分支2

在并入分支時可能會產生沖突,命令行中顯示“MERGING”的字樣,這是需要手動在對應文件做出更改,然后再通過add指令和commit指令重新提交。

$ git checkout <branch_name>/<hash>? ? ? ? //將HEAD移動至目標提交(檢出)

$ git checkout?-b <branch_name>? ? ? ? //創建新分支并檢出,即HEAD到此分支上

$ git reset <hash>? ? ? ? ?//真撤銷

$ git revert <hash>? ? ? ? //假撤銷,相當于是做了一個回到上一提交的提交

$ git log --oneline --graph --decorate --all? ? ? //可視化查看提交樹

修改提交

$ git commit --amend? ? ? ? ? //可以修改提交信息,可通過該命令添加遺漏文件

$ git commit --amend -m "<新的提交信息>"? ? ? ? //直接修改提交信息

$ git cherry-pick <hash>? ? ? ? //將對應的提交節點復制為新的提交節點

$ git cherry-pick <hash1> <hash2>? ? ? ? //依次生成新創建,<hash>可以是分支或HEAD

$ git rebase -i <hash>? ? ? ? ? //修改范圍內的提交

這個指令會讓我們進入Vim編輯器,此時按下“i”、“a”、“s”進入編輯模式,按ESC退出該模式。在編輯模式可以對各個節點進行替換刪除等操作,將每個提交前的“pick”替換為其他指令可以產生對應的效果,這些指令都寫在下方的注釋中。

標簽

因為分支是需要我們不斷操作移動的,而不是固定在某一提交上的,所以就需要用“標簽”來標識重要的提交。標簽的內容通常就是版本號,格式一般為 [ v <主版本號> . <次版本號> . <修訂號> ] ,修訂號的更新通常是修復了某些bug或者優化了某些內容,次版本號更新會添加一些功能但與老版本兼容,主版本號通常用于重大更新,調整范圍較大,新老版本不兼容。一般非正式發布的都采用v0.x.x,第一個正式發布的項目一般為 v1.0.0 。

$ git tag? ? ? ? ? //查看所有標簽

$ git tag <tag_name>? ? ? ? //默認在HEAD提交節點上添加標簽(無注解,稱為輕標簽)

$ git tag -a <tag_name>? ? ? ? ?//啟用編輯,添加注解(稱為注解標簽)

$ git tag -am "<注解>" <tag_name>? ? ? ? //創建標簽的同時添加注解(-m用于編輯信息)

$ git tag <tag_name> <hash>? ? ? ? //指定提交節點

$ git tag -d <tag_name>? ? ? ? //刪除標簽

$ git describe? ? ? ? ? ?//描述離默認的HEAD最近的標簽信息,只能描述注解標簽

$ git describe <hash>? ? ? ?//描述離目標提交最近的標簽信息

小結

這篇文章將會作為動態筆記記錄,我將把我在日常開發中可能用到的指令更新在這里,方便查閱與使用。

如有補充糾正歡迎留言。

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

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

相關文章

Dynamics365 ExportPdfTemplateExportWordTemplate兩個Action調用的body構造

這兩天在用ExportPdfTemplate做pdf導出功能時&#xff0c;遇到了如下問題InnerException : Microsoft.OData.ODataException: An unexpected StartArray node was found when reading from the JSON reader. A PrimitiveValue node was expected. 我的場景是使用power automate…

經典算法 判斷一個圖是不是樹

判斷一個圖是不是樹 問題描述 給一個以0 0結尾的整數對列表&#xff0c;除0 0外的每兩個整數表示一條連接了這兩個節點的邊。假設節點編號不超過100000大于0。你只要判斷由這些節點和邊構成的圖是不是樹。是輸出YES&#xff0c;不是輸出NO。 輸入樣例1 6 8 5 3 5 2 6 4 5…

【嵌入式八股2】C++:STL容器與算法

1. STL常見容器及其內部實現的數據結構 序號 名稱 描述 存儲結構 常用方法和操作 1vector動態分配的數組順序數組&#xff08;array&#xff09;v.push_back(), v.pop_back(), v.insert(), v.erase(), v.capacity(), v.size(), v.at(idx), v.front(), v.back()2list雙向鏈表離…

vmcore分析鎖問題實例(x86-64)

問題描述&#xff1a;系統出現panic&#xff0c;dmesg有如下打印&#xff1a; [122061.197311] task:irq/181-ice-enp state:D stack:0 pid:3134 ppid:2 flags:0x00004000 [122061.197315] Call Trace: [122061.197317] <TASK> [122061.197318] __schedule0…

在Apple Silicon上部署Spark-TTS:四大核心庫的技術魔法解析!!!

在Apple Silicon上部署Spark-TTS&#xff1a;四大核心庫的技術魔法解析 &#x1f680; &#xff08;M2芯片實測&#xff5c;Python 3.12.9PyTorch 2.6.0全流程解析&#xff09; 一、核心庫功能全景圖 &#x1f50d; 在Spark-TTS的部署過程中&#xff0c;pip install numpy li…

leetcode03 -- 武漢旅游查詢系統

武漢旅游查詢系統 1 界面展示 1.首頁地圖界面 2.查找功能 在查找框內輸入查找的景點名稱 查找到的景點在地圖上進行定位,右側展示景點的詳細信息。 3.添加景點功能 在地圖上點擊某個位置,系統彈出一個輸入框供用戶填寫景點的名稱和描述。 在彈出的輸入框中輸入景點名…

玩機進階教程----MTK芯片設備刷機導致的死磚修復實例解析 連電腦毫無反應 非硬件問題

在高通芯片機型中,我們可以通過短接主板測試點來激活高通芯片特有的9008底層端口來刷寫救磚固件。但通常MTK芯片類的設備聯機電腦即可觸發深刷模式。但有些例外的情況會導致鏈接電腦毫無反應。遇到類似故障的友友可以參閱此博文嘗試解決。 通過博文了解 1??????-----實…

09-設計模式企業場景 面試題-mk

文章目錄 1.工廠(方法)模式1.1.簡單工廠模式(不是設計模式,是編程習慣)1.2.工廠方法模式(企業開發中最常見)1.3.抽象工廠模式2.策略模式2.1.登錄案例(工廠模式+策略模式)3.責任鏈設計模式4.單點登錄怎么是實現的?5.權限認證是如何實現的6.上傳數據的安全性你們怎么控…

BUUCTF-Web(1-20)

目錄 一.SQL注入 (1)[極客大挑戰 2019]EasySQL 萬能密碼 (7)[SUCTF 2019]EasySQL 堆疊注入 解一&#xff1a; 解二&#xff1a; (10)[強網杯 2019]隨便注 堆疊注入 解一&#xff1a; 解二&#xff1a; 解三&#xff1a; (8)[極客大挑戰 2019]LoveSQL 聯…

軟件包安裝管理Gitlab

官方提供了非常詳盡的系統及自動化腳本安裝教程 Gitlab官網下載地址&#xff1a;https://gitlab.cn/install/ 1、安裝配置 今天我們說一下包安裝管理&#xff0c;這樣方便我們自己更精確的制定符合我們自己需要的Gitlab倉庫 配置&#xff1a;ubuntu2004(focal) 4C8G 下載程…

hadoop執行sqoop任務找不到jar

sqoop:1.4.7 hadoop:3.4.1 數據:oracel-hdfs 2025-04-15 16:57:00,850 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7 2025-04-15 16:57:00,901 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead. 2025-04-15 …

空地機器人在復雜動態環境下,如何高效自主導航?

隨著空陸兩棲機器人(AGR)在應急救援和城市巡檢等領域的應用范圍不斷擴大&#xff0c;其在復雜動態環境中實現自主導航的挑戰也日益凸顯。對此香港大學王俊銘基于阿木實驗室P600無人機平臺自主搭建了一整套空地兩棲機器人&#xff0c;使用Prometheus開源框架完成算法的仿真驗證與…

MCP調用示例-GitHub倉庫操作

在上一篇文章MCP核心概念和應用 ———AI 大模型的標準化工具箱里&#xff0c;我們講述了MCP的安裝&#xff0c;現在讓我們試一試通過示例了解它的功能吧&#xff01; 首先確保你已經有了相應的APIKEY。 &#x1f4a1;大模型中轉API推薦 ?中轉使用教程 1、點擊界面上的 「Done…

zk源碼—5.請求的處理過程一

大綱 1.服務器的請求處理鏈 (1)Leader服務器的請求處理鏈 一.PrepRequestProcessor請求預處理器 二.ProposalRequestProcessor事務投票處理器 三.SyncRequestProcessor事務日志處理器 四.AckRequestProcessor投票反饋處理器 五.CommitProcessor事務提交處理器 六.ToBeA…

小程序獲取用戶總結(全)

獲取方式 目前小程序獲取用戶一共有3中(自己接觸到的),但由于這個API一直在改,所以不確定后期是否有變動,還是要多關注官方公告。 方式一 使用wx.getUserInfo 實例: wxml 文件<button open-type="getUserInfo" bindgetuserinfo="onGetUserInfo&quo…

[LeetCode 1871] 跳躍游戲 7(Ⅶ)

題面&#xff1a; 數據范圍&#xff1a; 2 ≤ s . l e n g t h ≤ 1 0 5 2 \le s.length \le 10^5 2≤s.length≤105 s [ i ] s[i] s[i] 要么是 ′ 0 ′ 0 ′0′ &#xff0c;要么是 ′ 1 ′ 1 ′1′ s [ 0 ] 0 s[0] 0 s[0]0 1 ≤ m i n J u m p ≤ m a x J u m p <…

【Linux】基礎 IO(文件描述符、重定向、緩沖區)

Linux 1.理解文件2.C文件接口1.打開 寫文件2.讀文件 簡單實現cat命令3.輸出信息到顯示器的方式4.stdin、stdout、stderr5.打開文件的方式 3.系統接口 IO1.傳遞標志位2.open、close3.write、read 4.文件描述符1.是什么&#xff1f;2.分配規則3.重定向原理4.通過dup2系統調用重…

Apache Doris SelectDB 技術能力全面解析

Apache Doris 是一款開源的 MPP 數據庫&#xff0c;以其優異的分析性能著稱&#xff0c;被各行各業廣泛應用在實時數據分析、湖倉融合分析、日志與可觀測性分析、湖倉構建等場景。Apache Doris 目前被 5000 多家中大型的企業深度應用在生產系統中&#xff0c;包含互聯網、金融、…

交換機與路由器的默契配合:它們的聯系與區別

交換機與路由器的默契配合&#xff1a;它們的聯系與區別 一. 交換機與路由器的基本功能1.1 交換機的功能1.2 路由器的功能 二. 交換機和路由器的區別三. 交換機和路由器的聯系3.1 數據轉發的協作3.2 網絡分段與分隔3.3 協同工作提供互聯網接入 四. 交換機和路由器的聯合應用場景…

【計算機系統結構】MIPSsim

目錄 雙擊MIPSsim.exe 問題1&#xff1a;Microsoft Defender SmartScreen阻止了無法是被的應用啟動&#xff0c;運行此應用可能會導致你的電腦存在風險 解決 出現下面的問題的話&#xff0c;建議直接在官網下載 問題2&#xff1a;.NET Framework 3.5安裝錯誤代碼0x80240438 …