Git常用命令完全指南:從入門到精通

Git常用命令完全指南:從入門到精通

一、基礎配置命令

1. 用戶信息配置

# 設置全局用戶名
git config --global user.name "你的名字"# 設置全局郵箱
git config --global user.email "你的郵箱@example.com"# 查看所有配置
git config --list

2. 倉庫初始化

# 初始化當前目錄為Git倉庫
git init# 克隆遠程倉庫到本地
git clone https://github.com/username/repo.git# 克隆指定分支
git clone -b branch_name https://github.com/username/repo.git

二、基礎工作流命令

1. 狀態查看

# 查看當前狀態(最常用)
git status# 簡短狀態顯示
git status -s
# 輸出示例:
# M  README.md    (已修改)
# A  newfile.txt  (已添加)
# ?? untracked.js (未跟蹤)

2. 添加與提交

# 添加單個文件
git add filename# 添加所有變更(包括新文件和修改)
git add .# 添加所有修改(不包括新文件)
git add -u# 提交變更
git commit -m "提交描述信息"# 添加并提交(適合小改動)
git commit -am "添加并提交"

3. 查看歷史

# 查看完整提交歷史
git log# 單行顯示提交歷史
git log --oneline# 帶分支圖的提交歷史
git log --graph --all --oneline# 查看某文件的修改歷史
git log -p filename

三、分支管理命令

1. 基礎分支操作

# 查看所有分支
git branch -a# 創建新分支
git branch new-feature# 切換分支
git checkout develop# 創建并切換分支(常用)
git checkout -b hotfix# 刪除分支
git branch -d old-feature

2. 分支合并與變基

# 合并分支到當前分支
git merge feature-branch# 變基(重寫提交歷史)
git rebase main# 交互式變基(修改最近3次提交)
git rebase -i HEAD~3

3. 遠程分支操作

# 獲取遠程分支
git fetch origin# 跟蹤遠程分支
git checkout --track origin/remote-branch# 推送本地分支到遠程
git push -u origin local-branch# 刪除遠程分支
git push origin --delete old-branch

四、撤銷與回退命令

1. 工作區撤銷

# 撤銷工作區單個文件的修改
git restore filename# 撤銷工作區所有修改
git restore .# 撤銷所有未跟蹤文件
git clean -fd

2. 暫存區撤銷

# 將文件移出暫存區(保留修改)
git restore --staged filename# 清空暫存區(保留工作區修改)
git reset

3. 提交回退

# 撤銷上一次提交(創建新提交)
git revert HEAD# 回退到指定提交(保留修改)
git reset commit_id# 硬回退(丟棄所有修改)
git reset --hard commit_id

五、遠程倉庫操作

1. 遠程連接管理

# 查看遠程倉庫
git remote -v# 添加遠程倉庫
git remote add upstream https://github.com/original/repo.git# 修改遠程倉庫URL
git remote set-url origin https://new.url/repo.git

2. 推送與拉取

# 推送當前分支到默認遠程倉庫
git push# 強制推送(謹慎使用)
git push -f# 拉取遠程更新(fetch + merge)
git pull# 拉取遠程更新(fetch + rebase)
git pull --rebase

六、高級實用命令

1. 儲藏更改

# 儲藏當前工作區修改
git stash# 查看儲藏列表
git stash list# 恢復最近儲藏
git stash pop# 恢復指定儲藏
git stash apply stash@{1}

2. 標簽管理

# 創建標簽
git tag v1.0.0# 創建帶注釋的標簽
git tag -a v1.1.0 -m "Release version 1.1.0"# 推送標簽到遠程
git push origin --tags# 刪除本地標簽
git tag -d v0.9.0

3. 文件忽略

創建.gitignore文件:

# 忽略所有.class文件
*.class# 忽略node_modules目錄
node_modules/# 忽略.env環境文件
.env# 不忽略特定文件
!important.class

4. 差異比較

# 比較工作區和暫存區
git diff# 比較暫存區和最新提交
git diff --staged# 比較兩個分支
git diff branch1..branch2# 比較指定文件在不同分支的差異
git diff branch1 branch2 -- filename

七、Git命令速查表

分類命令功能描述
基礎操作git init初始化倉庫
git clone [url]克隆遠程倉庫
git status查看狀態
提交相關git add [file]添加到暫存區
git commit -m "msg"提交變更
git commit --amend修改上次提交
分支管理git branch查看分支
git checkout -b [branch]創建并切換分支
git merge [branch]合并分支
遠程操作git remote -v查看遠程倉庫
git push推送到遠程
git pull從遠程拉取
撤銷操作git restore [file]撤銷工作區修改
git restore --staged [file]撤銷暫存區添加
git reset [commit]回退到指定提交
歷史查看git log查看提交歷史
git log --oneline --graph圖形化歷史
git diff比較差異

八、最佳實踐小貼士

  1. 提交規范:使用清晰、一致的提交信息格式

    feat: 添加用戶登錄功能
    fix: 解決首頁加載問題
    docs: 更新API文檔
    
  2. 分支策略

    • main/master:穩定生產分支
    • develop:開發主分支
    • feature/*:功能開發分支
    • hotfix/*:緊急修復分支
  3. 黃金法則

    • 頻繁提交小改動
    • 提交前使用git diff檢查變更
    • 推送前拉取最新代碼
    • 慎用git push -f強制推送
  4. 救命命令

    # 查看命令幫助
    git help [command]# 查看命令簡寫手冊
    git [command] -h
    

總結

Git的強大功能源于其豐富的命令集,掌握這些常用命令將極大提升你的開發效率。記住:

  • 工作區 → 暫存區 → 倉庫 是Git的核心工作流
  • addcommitpushpull 是最常用命令
  • 理解resetrevertstash等撤銷操作能救你于危難
  • 良好的分支管理策略是團隊協作的基礎

實踐是最好的學習方式,建議在日常開發中多使用這些命令,逐步形成自己的Git工作流。遇到問題時,別忘了Git內置的幫助系統(git help [command])是你最好的朋友!

掌握Git是每個開發者的必備技能,本文整理了最常用、最實用的Git命令,助你高效管理代碼版本。


「小貼士」:點擊頭像→【關注】按鈕,獲取更多軟件測試的晉升認知不迷路! 🚀

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

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

相關文章

為什么要創建 Vue 實例

核心原因:Vue 需要一個「控制中心」來驅動整個應用 你可以把 Vue 實例想象成你應用的**「大腦」或「引擎」。它負責協調模板、數據、邏輯和行為,將它們變成一個活的、可交互的應用**。沒有這個實例,你的代碼只是一堆靜態的 HTML、JavaScript 變量和函數,無法「活」起來。 …

正則持續學習呀

源匹配為 (.*): (.*)$ 替換匹配為 "$1": "$2", 可將headers改為字典 參考 【爬蟲軍火庫】如何優雅地復制請求頭 - 知乎

python --導出數據庫表結構(pymysql)

import pymysql from pymysql.cursors import DictCursor from typing import Optional, Dict, List, Anyclass DBSchemaExporter:"""MySQL數據庫表結構導出工具,支持提取表和字段注釋使用示例:>>> exporter DBSchemaExporter("local…

Kafka 消息模式實戰:從簡單隊列到流處理(二)

四、Kafka 流處理實戰 4.1 Kafka Streams 簡介 Kafka Streams 是 Kafka 提供的流處理庫,它為開發者提供了一套簡潔而強大的 API,用于構建實時流處理應用程序。Kafka Streams 基于 Kafka 的高吞吐量、分布式和容錯特性,能夠處理大規模的實時…

VAS1086Q 奇力科技線性芯片車規用品LED驅動芯片

一、產品概述 名稱與定位:VAS1086Q 是奇力科技(Chiplead Technology)推出的汽車級恒流 LED 驅動器,屬于 Value Added Solutions 系列,專為汽車 LED 照明應用提供高性價比方案。 核心功能: 支持 10~400mA 可…

適應性Java用于現代 API:REST、GraphQL 和事件驅動

在快速發展的軟件開發領域,REST、GraphQL 和事件驅動架構等新的 API 標準對于構建可擴展、高效的系統至關重要。Java 在現代 API 方面以其在企業應用中的穩定性而聞名,不斷適應這些現代范式的需求。隨著不斷發展的生態系統,Java 在現代 API 方…

浮點數精度問題(CSP38思考)

CSP38的第一題,考到了浮點數的除法(當然考完發現其實也可以不涉及浮點數,直接轉化為整型),我第一題一直卡到70、80分,故寫下此文。 浮點數的運算有精度損失問題,那么應該如何解決和避免呢&#…

F5 – TCP 連接管理:會話、池級和節點級操作

在 F5 BIG-IP 中,您可以在池成員級別或節點級別管理流向服務器的流量。節點級別狀態會影響與該節點關聯的所有池,而池成員狀態則僅限于單個池。了解每種方法以及何時使用它們對于順利進行維護窗口和流量管理至關重要。 池級狀態:啟用、禁用、強制離線、移除 在 BIG-IP 配置…

StoreView SQL,讓數據分析不受地域限制

作者:章建(處知) 引言 日志服務 SLS 是云原生觀測和分析平臺,為 Log、Metric、Trace 等數據提供大規模、低成本、實時的平臺化服務。SLS 提供了多地域支持【1】,方便用戶可以根據數據源就近接入 SLS 服務&#xff0c…

爬蟲基礎學習day2

# 爬蟲設計領域 工商:企查查、天眼查短視頻:抖音、快手、西瓜 ---> 飛瓜電商:京東、淘寶、聚美優品、亞馬遜 ---> 分析店鋪經營決策標題、排名航空:抓取所有航空公司價格 ---> 去哪兒自媒體:采集自媒體數據進…

Golang——10、日志處理和正則處理

日志處理和正則處理 1、logx日志處理1.1、logx簡介1.2、日志初始化與配置1.3、常用方法1.4、配合defer捕獲panic 2、正則處理2.1、正則表達式語法大全2.2、基本匹配2.3、常見函數使用2.4、從html提取漢字demo 1、logx日志處理 1.1、logx簡介 logx 是 go-zero 框架中用于日志記…

【LeetCode】3309. 連接二進制表示可形成的最大數值(遞歸|回溯|位運算)

LeetCode 3309. 連接二進制表示可形成的最大數值(中等) 題目描述解題思路Java代碼 題目描述 題目鏈接:LeetCode 3309. 連接二進制表示可形成的最大數值(中等) 給你一個長度為 3 的整數數組 nums。 現以某種順序 連接…

C++八股 —— 單例模式

文章目錄 1. 基本概念2. 設計要點3. 實現方式4. 詳解懶漢模式 1. 基本概念 線程安全(Thread Safety) 線程安全是指在多線程環境下,某個函數、類或代碼片段能夠被多個線程同時調用時,仍能保證數據的一致性和邏輯的正確性&#xf…

軟件工程:如何做好軟件產品

1、什么是產品 從項目到產品 產品:滿足行業共性需求的標準產品。即要能夠做到配置化的開發,用同一款產品最大限度地滿足不同客戶的需求,同時讓產品具有可以快速響應客戶需求變化的能力。 好的產品一定吸收了多個項目的共性,一定是…

Cinnamon修改面板小工具圖標

Cinnamon開始菜單-CSDN博客 設置模塊都是做好的,比GNOME簡單得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…

sqlsugar WhereIF條件的大于等于和等于查出來的坑

一、如下圖所示,當我用 .WhereIF(input.Plancontroltype > 0, u > u.Plancontroltype (DnjqPlancontroltype)input.Plancontroltype) 這里面用等于的時候,返回結果一條數據都沒有。 上圖中生成的SQL如下: SELECT id AS Id ,code AS …

centos 7 部署awstats 網站訪問檢測

一、基礎環境準備(兩種安裝方式都要做) bash # 安裝必要依賴 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 設置 Apache 開機自啟 systemctl start httpd # 啟動 Apache二、安裝 AWStats&#xff0…

React從基礎入門到高級實戰:React 實戰項目 - 項目四:企業級儀表盤

React 實戰項目:企業級儀表盤 歡迎來到 React 開發教程專欄 的第 29 篇!在前 28 篇文章中,我們從 React 的基礎概念逐步深入到高級技巧,涵蓋了組件設計、狀態管理、路由配置、性能優化和實時通信等核心內容。這一次,我…

STM32----IAP遠程升級

一、概述: IAP,全稱是“In-Application Programming”,中文解釋為“在程序中編程”。IAP是一種對通過微控制器的對外接口(如USART,IIC,CAN,USB,以太網接口甚至是無線射頻通道&#…

模擬搭建私網訪問外網、外網訪問服務器服務的實踐操作

目錄 實驗環境 實踐要求 一、準備工作 1、準備四臺虛擬機,分別標號 2、 防火墻額外添加兩塊網卡,自定義網絡連接模式 3、 關閉虛擬機的圖形管理工具 4、關閉防火墻 5、分別配置四臺虛擬機的IP地址,此處舉一個例子(使用的臨…