Git Restore 命令詳解與實用示例

文章目錄

  • Git Restore 命令詳解與實用示例
    • 1. 恢復工作區文件到最后一次提交的狀態
      • 基本命令
      • 示例
      • 恢復所有更改
    • 2. 恢復某個文件到特定提交的狀態
      • 基本命令
      • 示例
    • 3. 恢復暫存區的文件
      • 基本命令
      • 示例
      • 恢復所有暫存的文件
    • `git restore` 的常見選項
    • `git restore` 與 `git checkout` 比較
    • 總結

Git Restore 命令詳解與實用示例

git restore 是 Git 2.23 版本引入的新命令,旨在替代 git checkout 用于恢復文件和撤銷工作區的更改。它將原本由 git checkout 執行的文件恢復功能進行獨立化,使得 Git 的命令更加清晰和易用。

git restore 主要有兩種用法:

  1. 恢復工作區文件到上次提交的狀態
  2. 恢復特定文件到某個提交的狀態

1. 恢復工作區文件到最后一次提交的狀態

當你修改了文件,但決定不保留這些更改時,可以使用 git restore 將文件恢復到最近的提交版本。

基本命令

git restore <文件名>

示例

假設你修改了 main.py 文件,但決定撤銷這些修改,恢復到最后一次提交的狀態:

git restore main.py

這會把 main.py 恢復到當前分支上最新的提交版本。

恢復所有更改

如果想恢復當前工作目錄下所有文件的更改,可以使用 . 作為通配符:

git restore .

2. 恢復某個文件到特定提交的狀態

你可以選擇恢復某個文件到某個特定的提交版本,而不是當前分支的最新提交。

基本命令

git restore --source=<commit_id> <文件名>

示例

假設你想將 index.html 恢復到 abc1234 這個提交時的版本:

git restore --source=abc1234 index.html

這會將 index.html 恢復到提交 abc1234 的狀態。

注意git restore --source 中指定的 <commit_id> 也可以是分支名或者標簽名。

3. 恢復暫存區的文件

git restore 還可以用來撤銷文件的暫存操作,即把文件從暫存區(staging area)移回工作區。

基本命令

git restore --staged <文件名>

示例

如果你已將 main.py 文件添加到暫存區,但決定不提交它,可以使用 git restore --staged 命令將其從暫存區移除,保留在工作區:

git restore --staged main.py

這會將 main.py 從暫存區移除,保留文件的修改,但不會影響工作區的內容。

恢復所有暫存的文件

如果你想將所有已暫存的文件恢復到工作區,可以使用:

git restore --staged .

git restore 的常見選項

選項說明
--source=<commit_id>指定要恢復的提交,默認為當前分支的最新提交
--staged只恢復暫存區的文件,撤銷暫存操作
--worktree恢復工作區的文件到指定提交的狀態
.恢復當前目錄下所有文件

git restoregit checkout 比較

操作git checkoutgit restore
恢復工作區文件git checkout -- 文件名git restore 文件名
恢復暫存區文件git reset 文件名git restore --staged 文件名
切換分支git checkout 分支名使用 git switch

總結

  • git restore 是一個更專注于恢復文件和撤銷更改的命令。
  • git restore 恢復文件或撤銷暫存比 git checkout 更簡潔。
  • 推薦使用 git restore 來恢復文件的狀態,并將文件從暫存區移回工作區。

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

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

相關文章

AI 防口誤指南_LLM 輸出安全實踐

在數字化轉型的浪潮中&#xff0c;大語言模型(以下統稱LLM)已成為企業技術棧中不可或缺的智能組件&#xff0c;這種強大的AI技術同時也帶來了前所未有的安全挑戰。它輸出的內容如同雙面刃&#xff0c;一面閃耀著效率與創新的光芒&#xff0c;另一面卻隱藏著"幻覺"與不…

程序化廣告行業(55/89):DMP與DSP對接及數據統計原理剖析

程序化廣告行業&#xff08;55/89&#xff09;&#xff1a;DMP與DSP對接及數據統計原理剖析 大家好呀&#xff01;在數字化營銷的大趨勢下&#xff0c;程序化廣告已經成為眾多企業實現精準營銷的關鍵手段。上一篇博客我們一起學習了程序化廣告中的人群標簽和Look Alike原理等知…

運維之 Centos7 防火墻(CentOS 7 Firewall for Operations and Maintenance)

運維之 Centos7 防火墻 1.介紹 Linux CentOS 7 防火墻/端口設置&#xff1a; 基礎概念&#xff1a; 防火墻是一種網絡安全設備&#xff0c;用于監控和控制網絡流量&#xff0c;以保護計算機系統免受未經授權的訪問和惡意攻擊。Linux CentOS 7操作系統自帶了一個名為iptables的…

第十五屆藍橋杯大賽軟件賽省賽Python 大學 C 組題目試做(下)【本期題目:砍柴,回文字符串】

okk&#xff0c;大伙&#xff0c;這一期我們就把C組的題目刷完。 本期題目&#xff1a;砍柴&#xff0c;回文字符串 文章目錄 砍柴題目思路分析舉個栗子思路總結 代碼 回文字符串題目思路分析代碼 感謝大伙觀看&#xff0c;別忘了三連支持一下大家也可以關注一下我的其它專欄&a…

Design Compiler:庫特征分析(ALIB)

相關閱讀 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 簡介 在使用Design Compiler時&#xff0c;可以對目標邏輯庫進行特征分析&#xff0c;并創建一個稱為ALIB的偽庫&#xff08;可以被認為是緩存&#xff09;&…

MySQL索引原理:從B+樹手繪到EXPLAIN

最近在學后端&#xff0c;學到了這里做個記錄 一、為什么索引像書的目錄&#xff1f; 類比&#xff1a;500頁的技術書籍 vs 10頁的目錄缺點&#xff1a;全表掃描就像逐頁翻找內容優點&#xff1a;索引將查詢速度從O(n)提升到O(log n) 二、B樹手繪課堂 1. 結構解剖&#xff0…

全連接RNN反向傳播梯度計算

全連接RNN反向傳播梯度計算 RNN數學表達式BPTT(隨時間的反向傳播算法)參數關系網絡圖L對V的梯度L對U的梯度L對W和b的梯度 RNN數學表達式 BPTT(隨時間的反向傳播算法) 參數關系網絡圖 L對V的梯度 L對U的梯度 L對W和b的梯度

C++高效讀取大規模文本格式點云(windows)

需使用VS2017及以上版本&#xff0c;C語言標準選擇C17&#xff0c;支持OpenMP。 執行效率明顯優于ifstream stof。 // 點云數據結構 struct PointXYZ {std::array<float, 3> coord; };float string_to_float_fast(const std::string& str) {float value;auto [p…

【Linux】進程信號的捕捉處理

個人主頁~ 進程信號的捕捉處理 一、信號捕捉處理的概述1、信號捕捉處理全過程2、用戶態和內核態的區別&#xff08;一&#xff09;用戶態&#xff08;二&#xff09;內核態&#xff08;三&#xff09;用戶態與內核態的切換&#xff08;四&#xff09;硬件條件 二、再談進程地址…

Nyquist內置函數-概述

1 Nyquist內置函數-概述 本章提供奈奎斯特&#xff08;Nyquist&#xff09;語言參考。操作按功能和抽象級別分類。奈奎斯特在兩個重要級別上實現&#xff1a;“高級”級別支持行為抽象&#xff0c;這意味著像 stretch 和 at 這樣的操作可以應用。這些函數是典型用戶期望使用的…

數據驅動防災:AI 大模型在地質災害應急決策中的關鍵作用。基于DeepSeek/ChatGPT的AI智能體開發

全球氣候變化加劇了滑坡、泥石流等地質災害的發生頻率與不確定性&#xff0c;傳統基于統計與物理模型的預測方法常受限于?數據稀疏性?與?動態耦合復雜性?。近年來&#xff0c;AI智能體&#xff08;AI Agents&#xff09;與大型語言模型&#xff08;LLMs&#xff09;的突破為…

光譜相機在工業中的應用

光譜相機&#xff08;多光譜、高光譜、超光譜成像技術&#xff09;在工業領域通過捕捉物質的光譜特征&#xff08;反射、透射、輻射等&#xff09;&#xff0c;結合化學計量學與人工智能算法&#xff0c;為工業檢測、質量控制和工藝優化提供高精度、非接觸式的解決方案。以下是…

Dify工作流中如何去除deepseek-r1思考內容

在工作流中deepseek-r1的think標簽內部的內容&#xff0c;很容易讓工作流其他的llm產生幻覺&#xff0c;導致不能良好的生成目標效果。 我們通過代碼的方式讓deepseek-r1既有think思考鏈的效果&#xff0c;又不傳遞思考鏈。 工作流的邏輯為上圖 去除think中的代碼為 import re…

容器的CPU

1、限制進程的CPU 通過Cgroup來限制進程資源的使用&#xff0c;CPU Cgroup 是 Cgroups 其中的一個 Cgroups 子系統&#xff0c;它是用來限制進程的 CPU 使用的。 cpu.cfs_period_us&#xff0c;它是 CFS 算法的一個調度周期&#xff0c;一般它的值是 100000&#xff0c;以 mic…

【系統分析師-第二篇】

學習目標 通過參加考試&#xff0c;訓練學習能力&#xff0c;而非單純以拿證為目的。 1.在復習過程中&#xff0c;訓練快速閱讀能力、掌握三遍讀書法、運用番茄工作法。 2.從底層邏輯角度理解知識點&#xff0c;避免死記硬背。 3.通過考試驗證學習效果。 學習方法 第二遍快速…

【再探圖論】深入理解圖論經典算法

一、bellman_ford 1. 是什么松弛 在《算法四》中&#xff0c;對松弛的解釋是&#xff1a;relax the edge&#xff0c;看起來比較抽象&#xff0c;不過如果我們從生活中的實例去理解&#xff0c;就簡單多了&#xff1a; 試想一根繩索&#xff0c;當你握著繩索的兩頭使勁用力拉…

基于pycharm的YOLOv11模型訓練方法

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、前期準備1.1 軟件環境配置1.2 訓練集參考 二、訓練步驟2.1 打開文件夾2.2 打開文件2.3 data.yaml最終代碼 三、train.py四、最終結果五、detect.py六、 拓展…

用nodejs連接mongodb數據庫對標題和內容的全文本搜索,mogogdb對文檔的全文本索引的設置以及用node-rs/jieba對標題和內容的分詞

//首先我們要在Nodejs中安裝 我們的分詞庫node-rs/jieba,這個分詞不像jieba安裝時會踩非常多的雷&#xff0c;而且一半的機率都是安裝失敗&#xff0c;node-rs/jieba比jieba庫要快20-30%&#xff1b;安裝分詞庫是為了更好達到搜索的效果 這個庫直接npm install node-rs/jieba即…

水下聲吶探測儀,應急救援中的高效水下定位技術|深圳鼎躍

近年來&#xff0c;隨著水域活動增多及自然災害頻發&#xff0c;水下救援需求日益增長。傳統人工打撈方法在復雜水域中效率低、風險高&#xff0c;尤其在能見度差、水流湍急或深水區域中&#xff0c;救援難度倍增。 在此背景下&#xff0c;水下聲吶探測儀憑借其聲波定位與視頻…

AI 網關代理 LLMs 最佳實踐

作者&#xff1a;付宇軒&#xff08;計緣&#xff09; DeepSeek/QWen 普惠 AI 趨勢 隨著 DeepSeek-R1 的橫空出世&#xff0c;又一次點燃了原本已經有點冷淡的大語言模型市場和話題&#xff0c;并且快速成為了現象級&#xff0c;小到中小學生&#xff0c;大到父母輩都知道了中…