Git Stash 詳解

Git Stash 詳解

在使用 Git 進行版本控制時,經常會遇到需要臨時保存當前工作狀態的情況。git stash 命令就是為此設計的,它允許你將未提交的更改暫存起來,在處理其他任務或分支后,再恢復這些更改。

目錄
  1. 基本概念
  2. 常用命令
  3. 示例和用法

1. 基本概念

git stash 主要用于以下情況:

  • 當你正在進行某個功能開發,但突然需要修復一個緊急問題。
  • 你的工作樹中有未提交的更改,而你需要切換到其他分支或處理臨時任務。

當使用 git stash 暫存更改時,Git 將將當前的工作目錄和暫存區狀態保存在一個臨時區域,并恢復到最近一次提交的狀態。你可以稍后通過 git stash popgit stash apply 來恢復這些更改。

2. 常用命令

以下是 git stash 的常用命令及其說明:

git stash

將當前未提交的更改暫存起來,并將工作目錄和暫存區恢復到最近一次提交的狀態。

git stash
git stash list

列出所有暫存的內容,每個暫存內容都有一個唯一的 ID(如 stash@{0}, stash@{1} 等)。

git stash list
git stash show

顯示最近一次暫存的操作詳情。可以添加 -p 選項來查看詳細的 diff 內容。

git stash show [-p]
git stash apply <stash-id>

恢復指定的暫存內容,但不刪除該暫存記錄。

git stash apply [stash@{0}]
git stash pop

恢復最近一次暫存的內容,并同時從暫存列表中移除該記錄。

git stash pop
git stash drop <stash-id>

刪除指定的暫存內容。如果未指定 <stash-id>,則默認刪除最近一次的暫存內容(stash@{0})。

git stash drop [stash@{0}]
git stash clear

清空所有暫存的內容。

git stash clear

3. 示例和用法

以下是一些具體的示例,幫助你更好地理解和使用 git stash 命令。

示例 1:暫存當前更改并恢復

假設你在開發一個新功能,并且有一些未提交的更改:

# 修改文件
vim file.txt# 暫存更改
git stash# 列出暫存內容
git stash list

此時,你的工作目錄已經恢復到最近一次提交的狀態。

示例 2:查看暫存內容詳情

你可以使用 git stash show 查看暫存的詳細信息:

git stash show -p
示例 3:恢復指定的暫存內容

假設你有多次暫存的操作,并且需要恢復其中某一次:

# 列出所有暫存內容
git stash list# 恢復指定暫存內容,但不刪除記錄
git stash apply stash@{1}# 或者恢復并刪除暫存記錄
git stash pop stash@{0}
示例 4:清理暫存內容

如果你不再需要某些暫存的內容,可以使用 git stash drop 刪除:

# 清空所有暫存內容
git stash clear# 刪除指定的暫存內容
git stash drop stash@{2}

總結

通過 git stash 命令,你可以方便地保存和恢復未提交的工作狀態。這對于臨時切換分支、處理緊急任務或清理工作目錄非常有用。

希望這個詳解對你有所幫助!如果你有任何問題,請隨時提問。

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

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

相關文章

Windows下Dify安裝及使用

Dify安裝及使用 Dify 是開源的 LLM 應用開發平臺。提供從 Agent 構建到 AI workflow 編排、RAG 檢索、模型管理等能力&#xff0c;輕松構建和運營生成式 AI 原生應用。比 LangChain 更易用。 前置條件 windows下安裝了docker環境-Windows11安裝Docker-CSDN博客 下載 Git下載…

Clang-Tidy協助C++編譯期檢查

文章目錄 在Visual Studio中啟用clang-tidyClang-tidy 常用的檢查項readability-inconsistent-declaration-parameter-namemisc-static-assert 例子 C/C語言是一門編譯型語言&#xff0c;比起python,javascript 這些&#xff0c;有很多BUG可以在編譯期被排除掉&#xff0c;當然…

智能工廠規劃學習——深入解讀數字化工廠規劃與建設方案

項目總體思路聚焦于通過智能制造和數字化工廠建設,來優化企業戰略并提升信息化水平。首先,企業需學習先進國家已經驗證的先進經驗,并緊跟其正在變革的方向,以確保自身發展的前瞻性和競爭力。 在企業戰略層面,企業正從以產品為中心的業務模式,逐步轉變為以服務中心…

Go RPC 服務方法簽名的要求

在 Go 中&#xff0c;RPC 方法的簽名有嚴格的要求&#xff0c;主要是為了保證方法的調用能夠通過網絡正確地傳輸和解析。具體要求如下&#xff1a; 1. 方法必須是導出的 RPC 服務的方法必須是導出的&#xff08;即首字母大寫&#xff09;。這是因為 Go 的反射機制要求服務方法…

上位機 日志根據類型顯示成不同顏色

前言 在上位機軟件開發中日志是一個很重要的信息。一方面顯示系統的運行情況,另一方面主要用于排查軟件BUG和設備問題的重要參考。為了方面識別日志類型最好的方式是使用不同的顏色進行區分。這樣就一目了然了。 效果 實現代碼 1.根據 ListBox 控件 進行擴展了一個自定義控件…

CMake解析參數用法示例

cmake_parse_arguments 是 CMake 中用于解析函數或宏參數的工具&#xff0c;特別適合處理帶有選項&#xff08;OPTIONS&#xff09;、單值參數&#xff08;SINGLE_ARGS&#xff09;和多值參數&#xff08;MULTI_ARGS&#xff09;的復雜參數列表。以下是用法說明和一個示例&…

自定義JackSon配置

避免前端&#xff08;JavaScript&#xff09;處理大數&#xff08;如 Long、BigInteger&#xff09;時發生精度丟失問題&#xff0c;所以引入了自定義 Jackson 配置。 先看代碼&#xff1a; /** 根據id修改員工信息*/PutMappingpublic R<String> update(HttpServletRequ…

Qt入門——什么是Qt?

Qt背景介紹 什么是Qt? Qt 是?個 跨平臺的 C 圖形用戶界面應用程序框架 。它為應用程序開發者提供了建立藝術級圖形界面所需的所有功能。它是 完全面向對象 的&#xff0c;很容易擴展。Qt 為開發者提供了 ?種基于組件的開發模式 &#xff0c;開發者可以通過簡單的拖拽和組合…

Linux CentOS 安裝Python 3.8.0

在 CentOS 上升級 Python 3.6.8 到 3.8.0&#xff0c;可以按照以下步驟操作&#xff1a; 1. 安裝依賴 sudo yum groupinstall -y "Development Tools" sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel wget 如果遇到報錯“File "/bin…

Python爬蟲(11)Python數據存儲實戰:深入解析NoSQL數據庫的核心應用與實戰

目錄 引言一、背景&#xff1a;為什么選擇NoSQL存儲爬蟲數據&#xff1f;1.1 爬蟲數據的核心挑戰1.2 NoSQL數據庫的核心優勢 二、NoSQL數據庫在爬蟲中的核心應用2.1 MongoDB&#xff1a;文檔型數據庫的王者2.2 Redis&#xff1a;內存數據庫的極致性能 三、NoSQL選型與性能優化策…

PCB設計工藝規范(一)概述

PCB設計工藝規范&#xff08;一&#xff09; 1.概述2.關鍵詞及引用標準3.PCB板材要求3.1 確定PCB使用板材以及TG值3.2 確定 PCB 的表面處理鍍層 4.熱設計要求5.器件庫選項要求 資料來自網絡&#xff0c;僅供學習使用。 1.概述 規范產品的 PCB 工藝設計&#xff0c;規定 PCB 工…

proxychains4系統代理for linux(加速國內github下載速度,pip安裝)

1.proxychains4代理安裝&#xff1a; sudo apt-get install proxychains42.找到配置文件/etc/proxychains4.conf在[ProxyList]后面添加以下內容&#xff1a; socks5 127.0.0.1 10808 配置如下&#xff1a; 3.使用proxychains4(git clone)&#xff1a; proxychains4 git c…

Seata客戶端@GlobalTransactional核心源碼解析

文章目錄 前言一、GlobalTransactional1.1、wrapIfNecessary1.2、handleGlobalTransaction1.3、invoke 二、總結 前言 Seata是阿里開源的分布式事務解決方案。在Spring傳統的事務中&#xff0c;開啟事務&#xff0c;執行事務&#xff0c;回滾/提交事務&#xff0c;統一由Spring…

pytorch搭建并訓練神經網絡

#從小白開始學習人工智能# #學習筆記# 工具&#xff1a;pytorch 一、基礎概念 1.神經網絡是什么&#xff1f; 神經網絡是人類受到生物神經細胞結構啟發而研究出的算法體系。又稱為人工神經網絡&#xff08;Artificial neural network&#xff09; 最簡版神經網絡結構圖&a…

JavaEE-多線程實戰01

Java 多線程入門&#xff1a;第一個多線程程序 在 Java 中&#xff0c;多線程編程是非常重要的一部分。本篇文章將通過示例&#xff0c;帶你快速了解如何創建第一個多線程程序&#xff0c;并深入分析其運行機制。 1. 創建一個線程類并繼承 Thread 在 Java 中&#xff0c;我們…

Android Compose 無網絡狀態處理全指南:從基礎到高級實踐

Android Compose 無網絡狀態界面處理全方案 引言 在移動應用開發中&#xff0c;網絡連接不穩定是常見場景。優雅地處理無網絡狀態能顯著提升用戶體驗。Jetpack Compose 提供了強大的工具來實現各種網絡狀態下的界面展示。本文將全面介紹在 Compose 中處理無網絡狀態的多種方案…

Arduino項目實戰與編程技術詳解

一、智能避障小車:超聲波傳感器與PWM電機控制 1.1 硬件需求與工作原理 智能避障小車的核心在于超聲波傳感器與電機驅動模塊的協同工作。超聲波傳感器(HC-SR04)通過發射高頻聲波并接收回波來測量距離,而L298N電機驅動模塊則負責控制兩個直流電機的轉向與速度。 1.1.1 超聲…

Java在云計算、大數據、云原生下的應用和優勢 - 面試實戰

Java在云計算、大數據、云原生下的應用和優勢 - 面試實戰 第一輪提問 面試官&#xff1a;馬架構&#xff0c;請簡單介紹一下Java在云計算中的主要應用場景有哪些&#xff1f; 馬架構&#xff1a;Java在云計算中的主要應用場景包括微服務架構設計、容器化部署&#xff08;如D…

數據庫與大數據技術教程資料

概述 無論你是剛入門的技術新人&#xff0c;還是尋求突破的資深工程師&#xff0c;這份精心整理的電子書合輯將為你打開系統性學習的大門&#xff01;所有資源支持多端閱讀&#xff0c;助力技術成長每一步資料已經整理好&#xff0c;喜歡的朋友請自取&#xff1a;https://pan.…

【Spring Boot 注解】@ConfigurationProperties

文章目錄 ConfigurationProperties注解一、簡介二、依賴引入三、基本用法四、主要特性五、激活方式六&#xff0c;優點七、與 Value 對比 ConfigurationProperties注解 一、簡介 ConfigurationProperties 是 Spring Boot 提供的一個強大注解&#xff0c;用于將外部配置&#…