Git - 記錄一次由于少輸入了一個命令導致的更改丟失

Git - 記錄一次由于少輸入了一個參數導致的更改丟失

前言

某晚我激情開發了幾個小時,中途沒有進行commit存檔。準備睡覺時,我想創建一個新的分支并將今晚所有更改提交到新分支上(似乎應該開發時候就創建?)。

然后因為少輸入了一個參數,導致被跟蹤過的文件的更改全部消失了。

成因

我想創建并切換到api分支:

git checkout -b api

結果一困少輸了個-b,變成了:

git checkout api

結果我那晚開發的所有內容恰好都在api這個文件夾下,于是所有的更改都沒了。

分析

在執行git checkout命令時,可以將整個倉庫還原到一個分支/commit_hash/tag,可以用于恢復一個文件(夾)。

當切換到分支/commit_hash/tag時,正確的命令是git checkout 分支/commit_hash/tag

  • 例如我有一個分支名為dev,那么我可以使用git checkout dev命令切換到dev分支;
  • 例如我有一個commit的hash為9259d713a40e97f97af61a422631b723f5666aa5,那么我可以使用git checkout 9259d713命令切換到這次commit;
  • 例如我有一個tag名為v0.1,那么我可以使用git checkout v0.1命令切換到這個tag;
  • 例如我想創建并切換到dev分支,那么我可以使用git checkout -b dev命令。

若重名,則優先級分支 > 標簽 > commit_hash

當恢復一個文件(夾)時,正確的命令是git checkout -- 文件(夾)名

  • 例如我有一個文件夾是Solution,那么我可以通過命令git checkout -- Solution將文件夾Solution恢復到暫存區或版本庫。

但是,如果我沒有加--git checkout命令仍然會恢復這個文件夾!

誤操

我本來想創建并切換到一個分支api

git checkout -b api

結果因為困倦忘記輸入-b了:

git checkout api

結果此時我還沒有api分支,但正好有api文件夾。

git一看,心想,你這命令不規范,想還原一個文件夾但是沒有--啊,你應該輸成git chcekout -- api,太菜了吧,--都不知道輸。還好我git比較聰明,知道你的意思,雖然你沒有加--,但我還是幫你把文件夾api給還原了吧。

然后我一個晚上的更改就幾乎全被還原了。。。沒被還原的,只剩下一些未被跟蹤過的文件(新創建的文件)。然后我就在VsCode的時間線里把文件一個一個恢復了一下。。。

竟然,,一丁點提示都沒有。

亡羊補牢

早就有人吐槽創建并切換到新分支也是checkout命令,因此從git 2.23開始引入了switch命令。

以后再切換分支時,就使用git switch 分支名;創建并切換到新分支時,就使用git switch -c 分支名好了。

End

另:我的git版本為2.42.0.windows.2

The Real End, Thanks!

原創不易,轉載經作者同意后請附上原文鏈接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/144929924

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

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

相關文章

探索Rust在Web開發中的實際應用

近年來,Rust語言因其高性能、內存安全性和強大的工具鏈支持而迅速崛起。在Web開發領域,Rust提供了一套高效、現代化的框架和工具,使得開發者能夠構建快速、安全的Web應用程序。在本文中,我們將深入探討如何使用Rust進行Web開發&am…

Apache Celeborn 在B站的生產實踐

背景介紹 Shuffle 演進 隨著B站業務的飛速發展,數據規模呈指數級增長,計算集群也逐步從單機房擴展到多機房部署模式。多個業務線依托大數據平臺驅動核心業務,大數據系統的高效性與穩定性成為公司業務發展的重要基石。如圖1,目前在大數據基礎架構下,我們主要采用 Spark、Fl…

第29天:Web開發-PHP應用弱類型脆弱Hash加密Bool類型Array數組函數轉換比較

#知識點 1、安全開發-原生PHP-弱類型脆弱 2、安全開發-原生PHP-函數&數據類型 3、安全開發-原生PHP-代碼審計案例 一、PHP弱類型對比 1、 和 兩個等號是弱比較,使用進行對比的時候,php解析器就會做隱式類型轉換,如果兩個值的類型不相等就…

Kafaka安裝與啟動教程

1.下載 先去官網Apache Kafka可以查看到每個版本的發布時間。選擇你要安裝的版本。 然后進入linux建立要存放的文件夾,用wget命令下載 2.安裝 先解壓縮: tar -xvzf kafka_2.12-3.5.1.tgz -C ../ 3.配置文件 修改server.properties: cd .…

回歸預測 | MATLAB實ELM-Adaboost多輸入單輸出回歸預測

回歸預測 | MATLAB實ELM-Adaboost多輸入單輸出回歸預測 目錄 回歸預測 | MATLAB實ELM-Adaboost多輸入單輸出回歸預測預測效果基本介紹程序設計參考資料 預測效果 基本介紹 一、極限學習機(ELM) 極限學習機是一種單層前饋神經網絡,具有訓練速…

1、pycharm、python下載與安裝

1、去官網下載pycharm 官網:https://www.jetbrains.com/pycharm/download/?sectionwindows 2、在等待期間,去下載python 進入官網地址:https://www.python.org/downloads/windows/ 3、安裝pycharm 桌面會出現快捷方式 4、安裝python…

GESP2023年12月認證C++五級( 第三部分編程題(1)小楊的幸運數)

參考程序&#xff1a; #include <iostream> #include <cmath> using namespace std;int nextPerfectSquare(int a) {int sqrt_a (int)sqrt(a);if (sqrt_a * sqrt_a < a) {sqrt_a; // 如果 sqrt(a) 的平方小于 a&#xff0c;那么就需要加 1&#xff0c;找到下…

25年1月更新。Windows 上搭建 Python 開發環境:Python + PyCharm 安裝全攻略(文中有安裝包不用官網下載)

引言 隨著 Python 在數據科學、Web 開發、自動化腳本等多個領域的廣泛應用&#xff0c;越來越多的開發者選擇它作為首選編程語言。而 PyCharm 作為一個功能強大的集成開發環境&#xff08;IDE&#xff09;&#xff0c;為 Python 開發者提供了極大的便利。本文將詳細介紹如何在 …

IDEA配置maven和git并如何使用maven打包和git推送到gitlab

首先找到設置 在里面輸入maven然后找到點擊 然后點擊右邊兩個選項 路徑選擇下載的maven目錄下的settings文件和新建的repository文件夾 點擊apply應用 然后在搜索框里搜git點擊進去 此路徑為git的exe執行文件所在目錄&#xff0c;選好之后點擊test測試下方出現git版本號表…

【Rust 知識點雜記】

1、self和Self 在Rust中&#xff0c;self 和 Self 有不同的含義和用法&#xff0c;它們通常出現在結構體、枚舉或實現&#xff08;impl&#xff09;塊的上下文中。 self: self 是一個關鍵字&#xff0c;它代表方法調用時實例本身的引用。當在一個方法定義中使用 self 作為第一…

【Vue學習】Vue 組件實例的生命周期(四個階段,八個鉤子)

一、為什么要理解生命周期&#xff1f; 理解生命周期就像是知道了一部電影的劇情走向&#xff0c;能讓你在適當的時機做出反應。Vue 生命周期的鉤子讓你可以在不同的階段插入你的邏輯&#xff0c;像是提前準備、后期清理或者在數據更新時做點事情。這種“精確控制”的能力會讓你…

【Vue】<script setup>和 <script>區別是什么?在使用時的寫法區別?

<script setup> 是 Vue 3 引入的一種新的腳本語法&#xff0c;它提供了一種更簡潔和聲明式的方式來編寫組件邏輯。它是為了解決傳統 <script> 標簽在 Vue 單文件組件&#xff08;SFC&#xff09;中的一些局限性而設計的。 <script setup> 與 <script>…

Kotlin 數據類與密封類

Kotlin 數據類與密封類 引言 在 Kotlin 中&#xff0c;數據類和密封類是兩種非常重要的類類型&#xff0c;它們各自具有獨特的用途和優勢。數據類主要用于存儲數據&#xff0c;而密封類則用于表示受限的類層次結構。在本篇文章中&#xff0c;我們將深入探討 Kotlin 中的數據類…

Linux之信號量

目錄 信號量 信號量相關接口 創建信號量 初始化信號量 等待信號量&#xff0c;P操作 發布信號量&#xff0c;V操作 銷毀信號量 基于信號量的環形隊列下的生產者和消費者模型 環形隊列 代碼實現 上期我們學習了線程同步的概念&#xff0c;掌握了基于阻塞隊列的生產…

【電子通識】PWM驅動讓有刷直流電機恒流工作

電機的典型驅動方法包括電壓驅動、電流驅動以及PWM驅動。本文將介紹采用PWM驅動方式的恒流工作。 首先介紹的是什么是PWM驅動的電機恒流工作&#xff0c;其次是PWM驅動電機恒流工作時電路的工作原理。 PWM驅動 當以恒定的電流驅動電機時&#xff0c;電機會怎樣工作呢&#xff1…

非docker方式部署openwebui過程記錄

之前一直用docker方式部署openwebui&#xff0c;結果這東西三天兩頭升級&#xff0c;我這一升級拉取docker鏡像硬盤空間嗖嗖的占用&#xff0c;受不了&#xff0c;今天改成了直接部署&#xff0c;以下是部署過程記錄。 一、停止及刪除沒用的docker鏡像占用的硬盤空間 docker s…

[python3]Excel解析庫-xlwings

xlwings 是一個強大的 Python 庫&#xff0c;它允許你直接與 Microsoft Excel 進行交互。通過 xlwings&#xff0c;你可以輕松地在 Python 腳本或 Jupyter Notebook 中讀取、寫入和操作 Excel 文件&#xff0c;而無需手動打開 Excel 應用程序。此外&#xff0c;xlwings 還支持將…

Kafka 消費者專題

目錄 消費者消費者組消費方式消費規則獨立消費主題代碼示例&#xff08;極簡&#xff09;代碼示例&#xff08;獨立消費分區&#xff09; offset自動提交代碼示例&#xff08;自動提交&#xff09;手動提交代碼示例&#xff08;同步&#xff09;代碼示例&#xff08;異步&#…

【游戲設計原理】47 - 超游戲思維

對于這條原理&#xff0c;我首先想到的是開放世界&#xff0c;或者探索性游戲&#xff0c;這是最能包容各類玩家的游戲類型。這類游戲定義了基本規則&#xff0c;玩家的可操作性很強。就像上圖里的沙池一樣&#xff0c;里面有滑梯&#xff0c;是規則性比較明確的&#xff0c;而…

奧迪TT MK1(初代奧迪TT、第一代奧迪TT)儀表盤故障/不精準/水溫/剩余油量不準,如何修復、測試、復位?

故障現象 水溫不準&#xff0c;冷啟動就130℃汽油加滿&#xff0c;指針依然在中間偏左的位置 如下圖&#xff1a; 診斷過程 通過VAG KKL 409 USB OBD接口讀取水溫和油位數值正常&#xff0c;故判斷是儀表指針馬達損壞或需要重置指針位置 維修步驟 推薦選擇CH340&#xff08;老…