Git 基本操作(二)

目錄

撤銷修改操作

情況一

情況二?????????

情況三?

刪除文件

升級git?


撤銷修改操作

? ? ? ? 在日常編碼過程中,有些時候,我們可能寫著寫著發現目前的版本的代碼越寫越挫,越不符合標準,想讓我們當前的文件去恢復到上一次提交的版本,撤銷當前對文件的修改,其實就是恢復當前工作區的文件到上一個版本,有沒有什么方法呢?

? ? ? ? 方法是有的,但是撤銷修改要分為三種情況去討論。

情況一

? ? ? ? 當前的修改僅僅是修改了工作區的文件,但是沒有進行 git add 操作和 git commit 操作,也就是沒有將文件添加到暫存區版本庫中,此時想要撤銷當前工作區文件的修改。

? ? ? ? 此時有兩種方法進行撤銷修改。

  1. 使用 git diff 指令,查看當前修改的文件與上一次提交的文件的差異,根據差異對原有的文件進行相關差異代碼的刪除。這種方法作者不推薦,因為不能保證刪除的過程中一定不會出錯。
  2. 使用 git checkout -- [filename]?指令進行文件的撤銷修改,將文件恢復到最近一次 add 或者 commit 的版本。推薦使用這種方法。

? ? ? ? 來吧展示。

? ? ? ? 我們給 ReadMe 文件添加了一行 "hello China!!!" 數據,現在我們要撤銷當前的修改操作(這里要注意,添加數據,刪除數據,修改數據其實就是是對文件修改的具體體現)。

????????

? ? ? ? 使用 git checkout -- ReadMe 指令之后,確實完成了對工作區文件修改的撤銷。

情況二?????????

? ? ? ? 對工作區中的文件進行了修改,并且已經進行了 git add 操作,將修改的文件添加到了暫存區中,此時想要撤銷當前工作區暫存區文件的修改。

? ? ? ? 此時可以使用以下兩種方法進行修改。

  1. 使用 git reset --mixed HEAD?[filename] 指令,可以將 版本庫 和 暫存區 中的文件恢復到當前提交版本,將暫存區的文件恢復到到當前提交版本之后,此時的情況就變成了情況一,所以根據情況一使用 git checkout 指令進行恢復。
  2. 使用 git reset --hard HEAD指令,可以將 工作區 和 版本庫 和 暫存區 中的文件恢復到當前提交版本。

? ? ? ? 方法一展示。

? ? ? ? 我們先對 ReadMe 文件做了相同的修改,添加了對應的數據,然后將工作區中的文件進行了git add 操作,然后再使用 git reset HEAD 指令將暫存區和版本庫的文件恢復到了當前提交版本,此時查看本地倉庫的狀態,發現是工作區中的問價未 git add 的狀態,此時就變成了情況一。

? ? ? ? 此時再使用情況一的方法,就能實現工作區中的文件的當前修改的撤銷。

? ? ? ? 此時已經成功完成了對工作區暫存區文件的當前修改的撤銷。

? ??? ? 方法二展示。

?????????直接使用 git reset --hard HEAD 指令,將當前的工作區暫存區版本庫中的文件恢復到當前的提交版本。

? ? ? ? 此時也完成了對工作區暫存區文件修改的撤銷。?

情況三?

? ? ? ? 對工作區的文件修改之后,進行了 git add 操作,進行了 git commit 操作,已經將修改的文件添加到了暫存區版本庫中,此時想撤銷對工作區暫存區版本庫文件的修改。?

? ? ? ? 方法如下。

? ? ? ? 直接使用 git reset --hard HEAD^ 指令,進行所有文件的撤銷,其實也就是上期的所有文件的回退操作。?HEAD?表示當前提交版本,HEAD^ 表示上一次提交的版本,其它同理。

? ? ? ? 展示如下。

? ? ? ? 先對 ReadMe 文件進行修改操作,然后進行 git add git commit 操作。

? ? ? ? 然后使用 git reset --hard HEAD^ 指令將工作區暫存區版本庫中的所有文件恢復到上一版本。?

? ? ? ? 此時就完成了工作區暫存區版本庫文件的撤銷修改操作。??

刪除文件

? ? ? ? 有時候我們發現我們創建的文件和提交的文件不符合要求,要將工作區暫存區版本庫中對應的文件要刪除,此時我們應該如何進行刪除呢?
? ? ? ? 有兩種方法。

  1. 先使用 rm 指令刪除掉對應工作區的文件之后,然后使用 git addgit commit 指令,這樣最終就刪除了三個模塊中對應的文件。
  2. 先使用 git rm [filename] 指令,然后再使用 git commit 指令,這樣最終就刪除了三個模塊中對應的文件。

? ? ? ? 由于我們使用的是 git 1.83 版本,第一種方法必須使用 git 2.0 及其以上版本。

升級git?

? ? ? ? 所以要對 git 版本進行升級。?

? ? ? ? 1.卸載掉舊版本。

sudo yum remove git -y

? ? ? ? 使用 git --version 指令查看 git 版本。

? ? ? ? 此時已經完成了舊版本的卸載。

? ? ? ? 2.安裝 git 升級所依賴的倉庫。

sudo rpm -ivh http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm

? ? ? ? 3.安裝新版本 git 工具。

sudo yum -y install git -y

? ? ? ? 此時我們通過 git version 指令發現 git 工具新版本已經安裝完畢。?

? ? ? ? 方法一展示。

? ?創建 file1 文件,完成提交之后,將該文件在工作區暫存區版本庫中都進行刪除。?

? ? ? ? 最終完成了 file1 文件在各個模塊的刪除操作。?

????????方法二展示。

? ?創建 file1 文件,完成提交之后,將該文件在工作區暫存區版本庫中都進行刪除。?

? ? ? ? 最終完成了對 file1 文件在各個模塊的刪除。?

? ? ? ? 其實第二種方法其實就是對第一種方法的整合,第二種方法將第一種方法中的 rm git add 操作進行了整合,所以當第二種方法 git rm 之后,可以直接進行 git commit 操作。

? ? ? ? 以上便是本期的所有內容。

? ? ? ? 本期內容到此結束^_^?

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

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

相關文章

java使用CMU sphinx語音識別

java使用CMU sphinx語音識別 一、pom依賴1、依賴dependency2、配置倉庫repository 二、下載中文資源包1、下載中文資源包(需要其他語言的選擇對應的文件夾即可),中文選擇Mandarin2、將下載后的文件放到項目中3、代碼-識別wav語音文件4、代碼-…

企業內訓|智能駕駛與智能座艙技術——某汽車廠商

4月25日,東北某市,TsingtaoAI團隊為某汽車廠商的智能駕駛業務和研發團隊交付“智能駕駛與智能座艙技術”課程。本課程系統講解智能汽車兩大核心領域技術架構與實現路徑。課程涵蓋智能駕駛感知層(激光雷達/毫米波雷達/視覺融合)、決…

【數學建模國獎速成系列】優秀論文繪圖復現代碼(二)

文章目錄 國獎論文繪圖復現代碼,可直接運行柱狀圖橫向柱狀圖分組柱狀圖堆疊柱狀圖堆疊柱狀圖2三維柱狀圖完整復現代碼 國獎論文繪圖復現代碼,可直接運行 數模比賽的繪圖是非常重要得,這篇文章給大家分享我自己復現的國獎優秀論文的代碼&…

GitLab CVE-2024-12444 安全漏洞解決方案

本文分享極狐GitLab 補丁版本 17.11.1, 17.10.5, 17.9.7 的詳細內容。這幾個版本包含重要的缺陷和安全修復代碼,我們強烈建議所有私有化部署用戶應該立即升級到上述的某一個版本。對于極狐GitLab SaaS,技術團隊已經進行了升級,無需用戶采取任…

隨機微分方程(SDE):股票價格模型、利率模型的構建

隨機微分方程(SDE):股票價格模型、利率模型的構建 一、隨機微分方程(SDE)基礎:從確定性到隨機性的擴展 1. 定義與一般形式 隨機微分方程(SDE)是包含布朗運動(隨機項&am…

【MCP Node.js SDK 全棧進階指南】高級篇(1):MCP多服務器協作架構

隨著業務規模的不斷擴大和系統復雜度的提升,單一服務器架構往往無法滿足高并發、高可用性和彈性擴展的需求。在MCP生態系統中,多服務器協作架構成為構建大規模應用的必然選擇。本文將深入探討MCP TypeScript-SDK在多服務器環境下的部署、協作和管理,以及如何構建高可用、高性…

git 修改用戶名和郵箱

在 Git 中修改用戶名和郵箱地址是常見的任務,這可以確保你的提交記錄使用正確的身份信息。你可以通過簡單的命令來完成這一操作。 全局配置 修改全局用戶名 要修改全局的用戶名,請執行以下命令: git config --global user.name "New…

[算法學習]——通過RMQ與dfs序實現O(1)求LCA(含封裝板子)

每周五篇博客:(3/5) 碎碎念 其實不是我想多水一篇博客,本來這篇是歐拉序的博客,結果dfs序也是可以O1求lca的,而且常數更優,結果就變成這樣了。。。 前置知識 [算法學習]——dfs序 思想 分…

spark local模式

Spark Local 模式是一種在單臺機器上運行 Spark 應用程序的模式,無需搭建分布式集群,適合開發調試、學習以及運行小規模數據處理任務。以下為你詳細介紹該模式: 特點 簡易性:無需額外配置分布式集群,在單機上就能快速…

用 RxSwift 實現 UITableView 的響應式綁定(超實用示例)

目錄 前言 一、環境準備 1.安裝 RxSwift 和 RxCocoa 2.導入模塊 二、實現一個簡單的UITableView 1.實現一個簡單的 UITableView 1.實現步驟 1.我們聲明一個ViewModel 2.ViewModel和UITableView 綁定 2.實現 UITableView 的代理方法 三、處理點擊事件 前言 在 iOS 開發…

【C++】通過紅黑樹封裝map和set

前言: 通過之前的學習,我們已經學會了紅黑樹和map、set。這次我們要實現自己的map和set,對,使用紅黑樹進行封裝! 當然,紅黑樹內容這里就不在贅述,我們會復用紅黑樹的代碼,所以先將…

非凸科技受邀出席AI SPARK活動,共探生成式AI驅動金融新生態

4月19日,由AI SPARK社區主辦的“生成式AI創新與應用構建”主題沙龍在北京舉行。活動聚焦生成式AI的技術突破與產業融合,圍繞大模型優化、多模態應用、存內計算等前沿議題展開深度探討。非凸科技受邀出席并發表主題演講,深入解析金融垂直大模型…

【Java IO流】IO流詳解

參考筆記:【Java基礎-3】吃透Java IO:字節流、字符流、緩沖流_javaio-CSDN博客 目錄 1.IO流簡介 1.1 什么是IO流? 1.2 IO流的分類 1.3 字符流和字節流的其他區別 1.4 Java IO流體系圖 2.字符編碼詳解 3. Java的char類型與 Unicode、U…

驅動開發系列56 - Linux Graphics QXL顯卡驅動代碼分析(三)顯示模式設置

一:概述 如之前介紹,在qxl_pci_probe 中會調用 qxl_modeset_init 來初始化屏幕分辨率和刷新率,本文詳細看下 qxl_modeset_init 的實現過程。即QXL設備的顯示模式設置,是如何配置CRTC,Encoder,Connector 的以及創建和更新幀緩沖區的。 二:qxl_modeset_init 分析 in…

Vue3開發常見性能問題知多少

文章目錄 1 常見性能優化瓶頸及原因1.1 響應式數據的過度使用1.2 虛擬 DOM 的頻繁更新1.3 組件渲染的冗余1.4 大列表渲染的性能問題1.5 計算屬性和偵聽器的濫用1.6 事件處理函數的頻繁綁定1.7 異步組件的加載性能2 解決方案與優化技巧2.1 合理使用響應式數據2.2 優化虛擬 DOM 更…

Rust Ubuntu下編譯生成環境win程序踩坑指南

前言: 1,公司要給一線搞一個升級程序,需要在win下跑。 之前都是找開發總監幫忙,但是他最近比較忙。就讓我自己搞。有了下文.。說來慚愧,之前寫過一篇ubuntu下編譯windows的文章。里面的demo就一句話 fuck world。依賴…

openharmony 4.1 運行busybox工具包(保姆教程)

1.下載 鏈接:Index of /downloads/binaries 進入其中后,找到 挑選適合你系統架構的版本,例如我這邊是 https://busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-armv7r 右鍵復制鏈接 打開迅雷,直接粘…

算法四 習題 1.3

數組實現棧 #include <iostream> #include <vector> #include <stdexcept> using namespace std;class MyStack { private:vector<int> data; // 用于存儲棧元素的數組public:// 構造函數MyStack() {}// 入棧操作void push(int val) {data.push_back…

GD32F407單片機開發入門(十七)內部RTC實時時鐘及實戰含源碼

文章目錄 一.概要二.RTC基本特點三.GD32單片機RTC內部結構圖四.配置一個RTC走秒例程五.工程源代碼下載六.小結 一.概要 RTC&#xff08;Real-Time Clock&#xff09;是一種用于追蹤和記錄實際時間的時鐘系統。RTC模塊提供了一個包含日期&#xff08;年/月/日&#xff09;和時間…

新能源汽車運動控制器核心芯片選型與優化:MCU、DCDC與CANFD協同設計

摘要&#xff1a;隨著新能源汽車產業的迅猛發展&#xff0c;汽車運動控制器的性能和可靠性面臨著更高的要求。本文深入探討了新能源汽車運動控制器中MCU&#xff08;微控制單元&#xff09;、DCDC電源管理芯片和CANFD總線通信芯片的選型要點、優化策略及其協同設計方案。通過綜…