git常用修改命令

1. 代碼回退與歷史修改

git reset
模式命令示例作用范圍適用場景
--softgit reset --soft HEAD~1僅移動?HEAD?指針重新提交之前的修改
--mixedgit reset HEAD~1?(默認)重置暫存區取消已?add?但未提交的文件
--hardgit reset --hard a1b2c3d徹底丟棄工作區和暫存區徹底回退到某個版本(慎用!)

git revert

git revert <commitid>          # 生成一個反向提交
git revert -m 1 <merge_commit> # 撤銷合并提交
  • 特點:安全撤銷(保留歷史),適合已推送的提交

git commit --amend?

git commit --amend             # 修改最近提交信息
git commit --amend --no-edit   # 只修改提交內容

注意:僅限未推送的提交!

2. 分支管理

git branch
命令作用
git branch -f main HEAD~3強制移動分支指針
git branch -d feature刪除已合并分支
git branch -D hotfix強制刪除未合并分支
git branch --set-upstream-to=origin/main綁定遠程分支

3. 提交與變更查看

git log
git log --oneline --graph -n 5       # 簡潔圖形化歷史
git log -p -S "keyword"              # 搜索代碼變更
git log --since="2024-01-01" --author="John" # 條件過濾

?git show

git show HEAD~2:src/main.c          # 查看歷史文件內容
git show a1b2c3d --stat             # 顯示提交影響的文件

4. 暫存與恢復

git stash
git stash push -m "WIP: login feature"  # 暫存并命名
git stash list                         # 查看暫存棧
git stash apply stash@{1}              # 恢復指定暫存
git stash drop stash@{0}               # 刪除暫存

git checkout HEAD -- <file>

git checkout HEAD -- config.yml  # 從最近提交恢復文件
git checkout a1b2c3d -- .       # 恢復整個目錄到歷史版本

5. 差異比較與補丁

git diff
命令比較范圍
git diff工作區 vs 暫存區
git diff --cached暫存區 vs 最新提交
git diff HEAD~2 HEAD兩個提交間的差異
git diff --word-diff單詞級差異顯示

補丁操作

git diff > changes.patch       # 生成補丁
git apply --check changes.patch # 測試應用
git apply changes.patch        # 應用補丁
git format-patch HEAD~2        # 生成可郵件發送的補丁

?

命令對比表

場景推薦命令替代方案
撤銷本地修改git checkout HEAD -- filegit restore file
修改提交信息git commit --amendgit rebase -i
安全撤銷提交git revertgit reset + force push(危險)
暫存臨時改動git stash手動復制文件

進階技巧

  1. 組合操作

    # 重置到某個提交但保留工作區修改
    git reset --hard a1b2c3d && git stash apply

  2. 精確回退

    # 僅回退某個文件到指定提交
    git checkout a1b2c3d -- src/main.c
  3. 排查問題

# 顯示誰最后修改了某行代碼
git blame -L 10,15 file.txt

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

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

相關文章

【ubuntu】linux開機自啟動

目錄 開機自啟動&#xff1a; /etc/rc.loacl system V 使用/etc/rc*.d/系統運行優先級 遇到的問題&#xff1a; 1. Linux 系統啟動階段概述 方法1&#xff1a;/etc/rc5.d/ 腳本延時日志 方法二&#xff1a;使用 udev 規則來觸發腳本執行 開機自啟動&#xff1a; /etc/…

Python深度學習基礎——深度神經網絡(DNN)(PyTorch)

張量 數組與張量 PyTorch 作為當前首屈一指的深度學習庫&#xff0c;其將 NumPy 數組的語法盡數吸收&#xff0c;作為自己處理張量的基本語法&#xff0c;且運算速度從使用 CPU 的數組進步到使用 GPU 的張量。 NumPy 和 PyTorch 的基礎語法幾乎一致&#xff0c;具體表現為&am…

光伏產品研發項目如何降本增效?8Manage 項目管理軟件在復合材料制造的應用

在復合材料制造領域&#xff0c;特別是光伏PECVD石墨舟和燃料電池石墨雙極板等高精尖產品的研發過程中&#xff0c;高效的項目管理直接決定了產品開發周期、質量和市場競爭力。然而&#xff0c;許多企業在項目立項、進度跟蹤、資源分配和質量控制等環節面臨挑戰。 針對這些痛點…

linux的glib庫使用

glib常用接口使用 1. glib介紹2. glib命令安裝3. 獲取glib的版本信息和兼容信息4. glib使用例子4.1 鏈表例子4.2 哈希表例子4.3 使用面向對象例子 1. glib介紹 廣泛應用于桌面環境、嵌入式系統、GNOME等項目中。它提供了完整的面向對象編程模型&#xff08;GObject&#xff09…

vs2022使用git方法

1、創建git 2、在cmd下執行 git push -f origin master &#xff0c;會把本地代碼全部推送到遠程&#xff0c;同時會覆蓋遠程代碼。 3、需要設置【Git全局設置】&#xff0c;修改的代碼才會顯示可以提交&#xff0c;否則是灰色的不能提交。 4、創建的分支&#xff0c;只要點擊…

SAP ECCS 標準報表 切換為EXCEL電子表格模式

在解決《SAP ECCS標準報表在報表中不存在特征CG細分期間 消息號 GK715報錯分析》問題過程中通過DEBUG方式參照測試環境補錄數據后&#xff0c;不再報GK715錯誤&#xff0c;此時用戶要的很急&#xff0c;要出季報。要求先把數據導出供其分析出季報。 采用導出列表方式&#xff…

基于 Python 和 OpenCV 技術的疲勞駕駛檢測系統(2.0 全新升級,附源碼)

大家好&#xff0c;我是徐師兄&#xff0c;一個有著7年大廠經驗的程序員&#xff0c;也是一名熱衷于分享干貨的技術愛好者。平時我在 CSDN、掘金、華為云、阿里云和 InfoQ 等平臺分享我的心得體會。 &#x1f345;文末獲取源碼聯系&#x1f345; 2025年最全的計算機軟件畢業設計…

MATLAB項目實戰(一)

題目&#xff1a; 某公司有6個建筑工地要開工&#xff0c;每個工地的位置&#xff08;用平面坐標系a&#xff0c;b表示&#xff0c;距離單位&#xff1a;km&#xff09;及水泥日用量d(t)由下表給出&#xff0e;目前有兩個臨時料場位于A(5,1)&#xff0c;B(2,7)&#xff0c;日儲…

[250417] Fedora 42 正式發布,搭載 Linux 6.14 內核和 GNOME 48 桌面環境

目錄 Fedora 42 正式發布全新的 Anaconda Web UI 安裝程序KDE Plasma 榮升官方版本 (Edition)全新 Fedora COSMIC Spin 登場GNOME 48 桌面環境更新其他重要改進獲取與升級 Fedora 42 正式發布 Fedora Linux 42 現已正式發布&#xff01;此版本基于最新的 Linux 內核 6.14 構建…

開源技術如何助力中小企業實現財務管理自主化?

中小企業的數字化困境與開源機遇 國際數據公司&#xff08;IDC&#xff09;研究顯示&#xff0c;全球67%的中小企業因高昂的軟件成本和僵化的功能設計&#xff0c;未能有效推進數字化轉型。傳統商業軟件常面臨三大矛盾&#xff1a; 功能冗余與核心需求缺失&#xff1a;標準化系…

JVM考古現場(二十二):降維打擊·用二向箔優化內存模型

"警報&#xff01;三維堆內存正在經歷二維化坍縮&#xff01;" 我腰間的玄鐵令突然震動&#xff0c;在蜀山劍派的量子劍陣中投射出詭異的曼德博分形——這是三體文明發動降維打擊的鐵證&#xff01; 楔子&#xff1a;二向箔奇點降臨 昆侖鏡監控日志&#xff1a; // …

詳細解釋MCP項目中安裝命令 bunx 和 npx區別

詳細解釋 bunx 和 npx 1. bunx bunx 是 Bun 的一個命令行工具&#xff0c;用于自動安裝和運行來自 npm 的包。它是 Bun 生態系統中類似于 npx 或 yarn dlx 的工具。以下是 bunx 的主要特點和使用方法&#xff1a; 自動安裝和運行&#xff1a; bunx 會自動從 npm 安裝所需的包…

Docker詳細使用

Docker詳細使用 文章目錄 Docker詳細使用使用場景docker安裝常用命令幫助啟動類命令鏡像命令網絡命令容器命令compose&#xff08;服務編排&#xff09; 功能列表存儲&#xff08;掛載本地&#xff09;介紹使用?錄掛載卷映射 網絡介紹使用 DockerfileCompose介紹使用 使用場景…

Ubuntu24.04搭建ESP8266_RTOS_SDK V3.4開發環境

【本文發布于https://blog.csdn.net/Stack_/article/details/147194686&#xff0c;未經允許不得轉載&#xff0c;轉載須注明出處】 需要有Linux使用基礎&#xff0c;自行準備 1、VM17 Pro &#xff08;自行搜索教程安裝&#xff09; 2、ubuntu-24.04-desktop-amd64 &#xff0…

微信小程序實現table樣式,自帶合并行合并列

微信小程序在代碼編寫過程好像不支持原生table的使用&#xff0c;在開發過程中偶爾又得需要拿table來展示。 1.table效果展示 1.wxml <view class"table-container"><view class"table"><view class"table-row"><view cla…

前端面試-React篇

核心概念與虛擬DOM React的虛擬DOM如何工作&#xff1f;Diff算法優化策略是什么&#xff1f;JSX的本質是什么&#xff1f;與模板引擎&#xff08;如Vue&#xff09;有何區別&#xff1f;React組件生命周期&#xff08;類組件&#xff09;的關鍵階段是什么&#xff1f;受控組件…

LFM調制信號分類與檢測識別

LFM調制信號分類與檢測識別 LFM調制信號分類識別AlexNet網絡識別InceptionV3、ResNet-18、ResNet-50網絡識別 LFM調制信號檢測識別 LFM調制信號分類識別 支持識別LFM信號、間歇采樣干擾(ISRJ)、靈巧噪聲干擾(SNJ)、掃頻干擾(SJ)、瞄準干擾(AJ)、阻塞干擾(BJ)、密集假目標干擾(…

Linux 常用命令總結

Linux 常用命令總結 Linux 命令行是系統管理和開發的核心工具&#xff0c;掌握常用命令可以極大提升效率。本文全面總結 Linux 常用命令&#xff0c;涵蓋文件操作、進程管理、網絡管理、系統監控、用戶管理、軟件安裝等多個方面&#xff0c;適合初學者和高級用戶參考。 1. 文件…

RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION函數分析之創建一個RPCRT4!OSF_CCALL--RPC源代碼分析

RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION函數分析之創建一個RPCRT4!OSF_CCALL 第一部分&#xff1a; 1: kd> p RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION0x167: 001b:77bf6957 393dec35c877 cmp dword ptr [RPCRT4!gfRPCVerifierEnabled (77c835ec)],edi 1: kd> …

量化視角:比特幣美債黃金三角博弈的DeepSeek推演

【AI分析】近期全球金融市場呈現罕見的三重分化態勢&#xff1a;比特幣單日振幅超35%、美債收益率創年內最大單日波動、黃金價格突破3271美元/盎司&#xff0c;刷新有記錄以來的最高價。這種極端行情背后&#xff0c;折射出AI模型捕捉到的市場結構性矛盾與資金流動新邏輯。 一…