Git 中**未暫存**和**未跟蹤**的區別:

文件狀態分類

Git 中的文件有以下幾種狀態:

工作區文件狀態:
├── 未跟蹤 (Untracked)
├── 已跟蹤 (Tracked)├── 未修改 (Unmodified) ├── 已修改未暫存 (Modified/Unstaged)└── 已暫存 (Staged)

1. 未跟蹤 (Untracked)

定義:Git 完全不知道這個文件的存在

特點

  • 新創建的文件
  • 從未被 git add
  • 不在 Git 的版本控制范圍內
  • Git 不會自動備份或恢復這些文件

示例

# 創建一個新文件
echo "hello" > newfile.txt# 查看狀態
git status
# 輸出:
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#         newfile.txt

2. 未暫存 (Unstaged/Modified)

定義:文件已被 Git 跟蹤,但當前的修改還沒有添加到暫存區

特點

  • 文件之前已經被 git addgit commit
  • 文件內容發生了變化
  • 變化還沒有通過 git add 添加到暫存區
  • Git 知道這個文件,也知道它被修改了

示例

# 修改一個已存在的文件
echo "modified content" > existingfile.txt# 查看狀態  
git status
# 輸出:
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git restore <file>..." to discard changes in working directory)
#         modified:   existingfile.txt

實際演示對比

# 初始狀態
git status
# On branch main
# nothing to commit, working tree clean# 1. 創建新文件 (未跟蹤)
echo "new file" > untracked.txt# 2. 修改已存在的文件 (未暫存)
echo "modified" > README.mdgit status
# On branch main
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git restore <file>..." to discard changes in working directory)
#         modified:   README.md          ← 未暫存 (已跟蹤但有修改)
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#         untracked.txt                  ← 未跟蹤 (Git不知道這個文件)

不同的清理命令

處理未跟蹤文件

# 只刪除未跟蹤的文件
git clean -f# 刪除未跟蹤的文件和目錄
git clean -fd# 預覽會刪除哪些未跟蹤文件
git clean -n

處理未暫存的修改

# 丟棄未暫存的修改 (恢復到最后一次commit的狀態)
git checkout .
# 或
git restore .# 丟棄特定文件的未暫存修改
git checkout -- filename
# 或  
git restore filename

一次性處理兩種情況

# 丟棄所有修改 + 刪除未跟蹤文件
git reset --hard HEAD  # 處理未暫存修改
git clean -fd          # 處理未跟蹤文件

狀態轉換圖

[未跟蹤文件] ↓ git add
[已暫存文件]↓ git commit  
[已提交文件] → 修改內容 → [未暫存修改]↑                         ↓ git add└─────── git commit ←── [已暫存修改]

實際場景舉例

# 場景1:開發新功能
touch feature.js        # 創建新文件 → 未跟蹤
vim README.md          # 修改已有文件 → 未暫存# 場景2:查看不同類型的修改
git status
# Changes not staged for commit:    ← 這些是未暫存修改
#         modified:   README.md
# 
# Untracked files:                  ← 這些是未跟蹤文件  
#         feature.js# 場景3:分別處理
git add feature.js     # 未跟蹤 → 已暫存
git restore README.md  # 未暫存修改 → 丟棄修改
git clean -f          # 刪除其他未跟蹤文件

總結對比

特征未跟蹤 (Untracked)未暫存 (Unstaged)
Git是否知道文件? 不知道? 知道
文件是否存在歷史版本? 沒有? 有
是否可以用 git restore 恢復? 不能? 能
是否會在 git diff 中顯示? 不會? 會
清理命令git cleangit restoregit checkout
風險程度刪除就徹底沒了可以恢復到最后commit狀態

記憶技巧

  • 未跟蹤 = Git 不認識這個文件
  • 未暫存 = Git 認識文件,但修改還沒準備好提交

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

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

相關文章

前端1.0

目錄 一、 什么是前端 二、 HTML 1.0 概述 2.0 注釋 三、開發環境的搭建 1.0 插件 2.0 筆記 四、 常見標簽&#xff08;重點&#xff09; 四、案例展示&#xff08;圖片代碼&#xff09; 五、CSS引入 一、 什么是前端 web前端 用來直接給用戶呈現一個一個的網頁 …

Flutter鏡像替換

一、核心鏡像替換&#xff08;針對 Maven 倉庫&#xff09; Flutter 依賴的 Google Maven 倉庫&#xff08;https://maven.google.com 或 https://dl.google.com/dl/android/maven2&#xff09;可替換為國內鏡像&#xff0c;常見的有&#xff1a;阿里云鏡像&#xff08;推薦&am…

MATLAB實現的改進遺傳算法用于有約束優化問題

基于MATLAB實現的改進遺傳算法&#xff08;GA&#xff09;用于有約束優化問題的代碼&#xff0c;包括處理非線性約束。此代碼通過引入懲罰函數和修復機制&#xff0c;有效處理約束條件&#xff0c;提高算法的魯棒性和收斂速度。 1. 定義優化問題 % 定義目標函數 function f ob…

Qt子類化QWidget后,使用setStyleSheet設置樣式無效的解決方案

關鍵代碼&#xff1a; #include <QPainter> #include <QStyleOption>void paintEvent(QPaintEvent *e) {QStyleOption opt;opt.init(this);QPainter p(this);style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);QWidget::paintEvent(e); }定義…

【python中級】關于Flask服務在同一系統里如何只被運行一次

【python中級】關于Flask服務在同一系統里如何只被運行一次 1.背景 2.方案1 2.方案2 1.背景 python Flask實現的一個http服務,打包成應用程序exe后在windows10系統運行; 由于我會不斷的更新這個http服務,我希望運行這個http服務的時候之前的http服務被停掉; 即實現 Pytho…

git配置公鑰/密鑰

遇到 “gitgithub.com: Permission denied (publickey)” 錯誤通常意味著你嘗試通過 SSH 連接到 GitHub 時&#xff0c;SSH 密鑰沒有被正確設置或者 GitHub 無法識別你的公鑰。這里有幾個步驟可以幫助你解決這個問題&#xff1a; 檢查 SSH 密鑰 首先&#xff0c;確保你已經在本…

【機器學習】“回歸“算法模型的三個評估指標:MAE(衡量預測準確性)、MSE(放大大誤差)、R2(說明模型解釋能力)

文章目錄一、MAE、MSE、r概念說明二、MAE&#xff08;平均絕對誤差&#xff09;&#xff1a;用"房價預測"理解誤差測量三、MSE&#xff08;均方誤差&#xff09;&#xff1a;誤差的"放大鏡"1、概念說明2、 sklearn代碼實踐3、流程總結四、R&#xff1a;理解…

智慧城市SaaS平臺|市容環衛管理系統

【生活垃圾中轉設施監管】1) 設施信息管理a) 設施基本信息支持記錄中轉設施的名稱、位置、類型、容量、負責人等基本信息。b) 設施分布地圖支持通過GIS地圖展示中轉設施的分布情況&#xff0c;支持地圖查詢和導航。2) 垃圾收運監控a) 垃圾收運記錄支持記錄垃圾收運的時間、車輛…

JAVA-13常用類(2025.08.02學習記錄)

String類String類equals方法String類compareTo方法String類valueOf方法boolean參數內存分析_字符串拼接只會在內存中開辟一個對象內存分析_字符串new創建對象內存分析_變量和字符串拼接字節碼執行過程String類內存分析package com.cn;public class test01 {public static void …

QT----簡單的htttp服務器與客戶端

HTTP協議學習 協議的相關學習可以參考這篇 csdn學習連接 總體流程如下 HTTP服務器 監聽ip和端口,有連接時接收請求,發送回復 server.h #pragma once #include <QtWidgets/QMainWindow> #include "ui_httpServer.h" #include <QTcpServer> #include &l…

飛 算 JavaAI 解 析:有 了 它,麻 麻 再 也 不 用 擔 心 我 不 會 寫 代 碼 了!

聲 明&#xff1a;本 篇 博 客 為 測 評 體 驗 非 廣 告。 文 章 目 錄一、產 品 簡 介二、注 冊 與 上 手方 法 一 - - - 從 IDEA 插 件 市 場 安 裝方 法 二產 品 使 用三、產 品 體 驗智 能 引 導 功 能理 解 需 求設 計 接 口表 結 構 設 計處 理 邏 輯生 成 源 碼Java ch…

iOS混淆工具有哪些?在集成第三方 SDK 時的混淆策略與工具建議

許多 iOS 項目中&#xff0c;不可避免地會集成各種第三方 SDK&#xff0c;比如支付、統計、廣告、社交登錄等。這些 SDK 常常存在逆向被 Hook 或提取業務邏輯的風險&#xff0c;尤其是在流程敏感或要求合規的行業中。 當你無法對第三方源碼進行控制或重新編譯時&#xff0c;混淆…

【學習筆記之redis】刪除緩存

有一串這個代碼&#xff0c;staffEmailList這個key值里面的數據是錯誤的我需要刪除它&#xff0c;把數據新的數據加載到redis緩存中。 public EmailAddressRespDTO getAllEmailAddress() { List<EmailAddressRespDTO> staffEmailList redisCache.getCacheList("s…

Redis 持久化機制淺析

1. 持久化機制的作用 Redis 是基于內存的數據結構數據庫&#xff0c;雖然讀寫性能非常高&#xff0c;但所有數據默認保存在內存中。一旦服務器宕機、進程意外崩潰或容器重啟&#xff0c;內存中的數據將全部丟失。這對于生產環境的可用性與可靠性是極其危險的。因此&#xff0c;…

使用MatterJs物理2D引擎實現重力和鼠標交互等功能,有點擊事件(盒子堆疊效果)

使用MatterJs物理2D引擎實現重力和鼠標交互等功能&#xff0c;有點擊事件&#xff08;盒子堆疊效果&#xff09; 效果圖&#xff1a;直接上代碼&#xff0c;我是用的是html&#xff0c;使用了MatterJs的cdn&#xff0c;直接復制到html文件中然后在瀏覽器打開即可 <!DOCTYPE …

如何玩轉 Kubernetes K8S

在容器化時代&#xff0c;雖然Docker已經很強大了&#xff0c;但是在實際使用上還是有諸多不便&#xff0c;比如集群管理、資源調度、文件管理等等。 不過目前也涌現了很多解決方案&#xff0c;比如 Mesos、Swarm、Kubernetes 等等&#xff0c;其中谷歌開源的 Kubernetes就是其…

論文閱讀筆記:Dataset Condensation with Gradient Matching

論文閱讀筆記&#xff1a;Dataset Condensation with Gradient Matching1. 解決了什么問題&#xff1f;(Motivation)2. 關鍵方法與創新點 (Key Method & Innovation)2.1 核心思路的演進&#xff1a;從參數匹配到梯度匹配2.2 算法實現細節 (Implementation Details)3. 實驗結…

網安學習no.22

一、基礎系統信息命令&#xff08;簡單入門&#xff09;uname作用&#xff1a;查看系統內核信息示例&#xff1a;uname -a&#xff08;顯示完整內核版本、主機名、硬件架構等&#xff09;hostname作用&#xff1a;查看或設置主機名示例&#xff1a;hostname&#xff08;顯示當前…

AJAX的引入

是的&#xff0c;AJAX 的一個主要特點就是通過 局部刷新 來實現與服務器的交互&#xff0c;而不需要重新加載整個頁面。通過 AJAX&#xff0c;JavaScript 可以發送異步的 HTTP 請求&#xff0c;接收到響應數據后&#xff0c;更新頁面的某個部分&#xff08;DOM&#xff09;。這…

SpringBoot 整合 Langchain4j AIService 深度使用詳解

目錄 一、前言 二、AIService 介紹 2.1 AiService 是什么 2.2 AiService 主要功能 2.3 AiService 使用步驟 三、AIService 操作實踐 3.1 前置準備 3.1.1 獲取apikey 3.1.2 導入核心依賴 3.1.3 添加配置文件 3.1.4 前置導入案例 3.2 AIService 案例操作詳解 3.2.1 入…