【Git的基本操作】版本回退 | 撤銷修改的三種情況 | 刪除文件

目錄

5.版本回退

5.1選項hard&后悔藥

5.2后悔藥&commit id

5.3版本回退的原理

6.撤銷修改

6.1情況一

6.2情況二

6.3情況三

?7.刪除文件


Git重要能力之一馬,版本回退功能。Git是版本控制系統,能夠管理文件歷史版本。本篇以ReadMe文件為例。

  • 版本回退 是回到某一次提交或者回退操作的時候版本 (用提交記錄的commit id即可)
  • 版本撤銷 是直接定位某個文件需要撤銷的內容。

5.版本回退

版本回退命令:git reset

版本回退命令本質是:將版本庫里面的內容回退的。

git reset也存在多個選項。

git reset 命令語法格式為:

git reset [--soft | --mixed | --hard] [HEAD]? 你想要回退到的版本的commit id(提交記錄)

  • Git reset 只是回退版本庫(本地倉庫)中的內容。關于工作區和暫存區的內容回退,需要git reset --選項 后面的選項來決定。
  • 版本回退是回退一次 add或者commit 操作,不是一個僅僅某個文件的版本。(這次提交的所有文件的版本都不算)
  • --soft:只回退版本庫中的內容
  • --mixed:會回退版本庫和暫存區的內容(默認選項)

  • --hard:會回退版本庫和暫存區和工作區的內容。(注意?hard要慎用,一旦使用hard選項,版本庫/暫存區/工作區所有的內容都回退到上一個版本。如果文件少,代碼少,可以用commit id找回來;如果文件過大,操作頻繁,很可能導致丟失一些新開放的代碼

  • git log --pretty=oneline?或者 git log 用來查看 每次提交的記錄

  • git reset 除了以上的版本回退的操作,還可以將文件回退到當前版本HEAD

  • HEAD當前版本意思就是工作區和暫存區的內容版本和版本庫中一致。(看選項)


背景?回退操作

ReadMe文件原本只有hello linux

ReadMe文件修改之后增加了一行aaaaaaaaaa

git reset [--soft | --mixed | --hard] [HEAD]
git reset --soft //僅工作區的內容
git reset --mixed //是工作區和暫存區的內容——默認選項
git reset --hard //是工作區和暫存區和版本庫的內容——慎用
git reset HRAD //(HEAD就是表示回退到當前版本,不需要選項,因為選項是默認選項)//就是工作區和暫存區的內容一起回到版本庫內容一致
git reset HRAD^  //回退到上一個版本
git reset HRAD^^  //回退到上上個版本
//后面都要接commit id或者文件名

5.1選項hard&后悔藥

git reset --hard 7f0ea7a49fc354e7f07696609b0c9e8ec261d0b8

用戶此刻后悔了,能不能撤銷剛剛的操作。

當然可以,剛剛已經答應了最新的commit id,我們知道我們原來版本(回退之前)的commit id,所以還可以回退到原來的文件版本。因為我們可以找到commit id,且并沒有將modify的ReadMe的commit id清除掉.

5.2后悔藥&commit id

?git reflog :用來記錄每一次的提交命令

每一次提交或者是回退操作都有各自操作對應commit id

我們照樣也可以使用一部分的commit id來回退

以上的前提是我們能找到commit id,在開發的過程中,我們會進行很多次的git操作,會把commit id沖刷掉,找不到。

5.3版本回退的原理

版本回退的速度是非常快的,版本回退的速度為什么快呢?

只需要修改的master的指向(指針)

6.撤銷修改

git checkout? -- 需要撤銷的文件名

  • 將工作區的文件回到醉經一次的add或者commit時的一個狀態
  • 注意:必須加上-- 這兩根橫線,不然就是另外一層含義

背景?撤銷操作

版本12:hello linux aaaaaaaaaaaa

版本3:xxxxx code(需要撤銷這行代碼)

6.1情況一

情況一:只在工作區的ReadMe文件修改了內容

解決辦法:

  • 手動撤銷——不推薦,容易出錯? ??
  • git checkout --[filename] --推薦

6.2情況二

情況二:在工作區的ReadMe文件修改了內容并且add到了暫存區。

解決辦法:

  • 回退命令 git reset HEAD (默認選項--mixed)暫存區回退到當前版本,回到撤銷情況一? ?
  • 使用git checkout 撤銷命令。或者是直接git reset --hard HEAD 一步到位

6.3情況三

情況三:在工作區的ReadMe文件修改了內容并且add到了暫存區和commit提交到了版本庫中。

  • 前提時:commit 之后沒有push
  • 撤銷的目的是 不影響遠程倉庫的代碼
  • 解釋:我們使用操作只能截止到commit操作,而不能使用Push操作。有個這個大的前提,我們的撤銷才算有效。含義:將來在公司運行一些代碼,是運行的/跑的 遠程倉庫的代碼。(所以我們主要是圍繞遠程倉庫來玩)撤銷主要就是撤銷我們本地一些錯誤的,不好的代碼。修改完才能推送到遠程倉庫。
  • 遠程倉庫:暫時不用理解。
  • 工作區——add——>暫存區——>commit——>版本庫——>Push——>遠程倉庫
  • 因為上面兩種撤銷情況我們都不需要考慮,都沒有commit到版本庫中,不可能到遠程倉庫。這種情況,版本庫中有了,我們不知道,遠程倉庫里是否被Push了。所以前提條件就是,遠程倉庫沒有被Push,這個撤銷操作才算有效。

解決辦法:

  • 前提條件:commit 之后沒有push?? ?
  • 使用git reset --hard commit id
  • 一步一步回到撤銷情況二?撤銷情況一?再用git checkout

7.刪除文件

刪除一個已經更新到版本庫中的文件(兩種做法)?

//做法1
rm file
git add file
git commit -m "delete file"//做法2
git rm file //把工作區和暫存區的文件一步到位刪除
git commit -m "delete file"

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

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

相關文章

神器!3個免費PPT成品網站推薦+3款AIPPT工具盤點!

熬夜加班做PPT卻沒有頭緒?別再自己憋著想了!現在凡事主打一個“抄作業”,想做ppt卻沒想法,可以去到ppt成品網站搜集PPT模板,或是使用時下流行的AI生成PPT工具,只需輸入PPT主題,即可快速生成一份…

全網最詳細的CRC講解即計算

CRC 循環冗余碼(Cyclic Redundancy Code, CRC)是一種用于校驗通信鏈路上數字傳輸準確性的計算方法(通過某種數學運算來建立數據位和校驗位(CRC)的約定關系的)。它是利用除法以及余數的原理來作錯誤偵測。 發送方: 使用…

客戶關系管理怎么做?這4個工具一定要會用!

在商海浮沉中,每一位企業家和銷售經理都深知,客戶是企業生存與發展的基石。但如何有效管理這些寶貴的資源,讓每一次互動都成為加深關系、促進成交的契機,卻是一門藝術加科學的結合體。今天,咱們就來聊聊客戶關系管理&a…

3SRB5016-ASEMI逆變箱專用3SRB5016

編輯:ll 3SRB5016-ASEMI逆變箱專用3SRB5016 型號:3SRB5016 品牌:ASEMI 封裝:SGBJ-5 批號:2024 現貨:50000 最大重復峰值反向電壓:1600V 最大正向平均整流電流(Vdss):50A 功…

CNN -1 神經網絡-概述

CNN -1 神經網絡-概述 一:芯片科技發展介紹了解1> 芯片科技發展趨勢2> 芯片使用領域3> 芯片介紹1. 神經網絡芯片2. 神經網絡處理單元NPU(Neural Processing Unit)二:神經網絡1> 什么是神經網絡2> 神經元3> 人工神經網絡三:卷積神經網絡(CNN)入門講解一…

【Spring】springSecurity使用

一、基本配置 1. 引入依賴 在Spring Boot項目中&#xff0c;使用Spring Security首先需要引入相應的依賴。在pom.xml中添加spring-boot-starter-security依賴&#xff1a; <dependency> <groupId>org.springframework.boot</groupId> <artifactId>…

Kodcloud可道云安裝與一鍵發布上線實現遠程訪問詳細教程

文章目錄 1.前言2. Kodcloud網站搭建2.1. Kodcloud下載和安裝2.2 Kodcloud網頁測試 3. cpolar內網穿透的安裝和注冊4. 本地網頁發布4.1 Cpolar云端設置4.2 Cpolar本地設置 5. 公網訪問測試6.結語 1.前言 本文主要為大家介紹一款國人自研的在線Web文件管理器可道云&#xff0c;…

唐劉:當 SaaS 愛上 TiDB(一)- 行業挑戰與 TiDB 的應對之道

導讀 在 TiDB 8.1 發布后&#xff0c;TiDB 展現了強大的支持 SaaS 業務的能力&#xff0c;成為 SaaS 業務數據庫的優先選擇之一。 本文為“當 SaaS 愛上 TiDB”系列文章的第一篇&#xff0c;系列文章將從技術原理和真實用戶體驗兩個角度深入探討 TiDB 在 SaaS 業務中的表現&a…

qt gridlayout 應用舉例

Qt的GridLayout是一種非常有用的布局管理器&#xff0c;它允許你在一個網格中放置控件&#xff0c;這樣你就可以創建出結構清晰、布局整齊的用戶界面。下面是一個使用GridLayout的簡單例子&#xff0c;展示了如何在一個窗口中放置幾個按鈕。 #include <QApplication> …

太速科技-3U VPX飛騰處理器刀片計算機

3U VPX飛騰處理器刀片計算機 一 、產品概述 該產品是一款基于國產飛騰FT2000 4核或騰銳D2000 8核的高性能3U VPX刀片式計算機。產品提供了4個x4 PCIe 3.0總線接口&#xff0c;同時可配置為1個x16或2個x8 PCIe3.0接口&#xff0c;因此具有很強的擴展性&#xff0c;極大…

agents 分類

一、分類 自動agent、半自動agent、領域、自定義sop和支持人為干預的agent。 先潑個冷水&#xff0c;目前這些agent項目都是實驗品&#xff0c;發展還沒有做知識庫問答相關開源項目那么成熟&#xff0c; 二、全自動agent autoGPT、loopGPT、babyAGI 全自動agent就是人類不可…

sizeof()

一、題目 *struct T { char a; int *d; int b; int c:16; double e; }; T *p; 在64位系統以及64位編譯器下&#xff0c;以下描述正確的是 A: sizeof 24 B: sizeof(p) 24 C: sizeof(p->a) 1 D: sizeof(p->e) 4 二、解析 p是一個指針&#xff0c;指針在32位機器上是…

GEE數據集——全球Ookla 5G 基站地圖數據(Ookla 5G Map Data)

Ookla 5G Map Data Ookla 5G 地圖數據 Ookla 5G Map? 于 2019 年 5 月推出,旨在全面展示 5G 技術在全球的擴展情況。在推出之初,該地圖突出顯示了 17 個國家的 300 項部署,說明了這一變革性技術的初步推廣情況。隨著時間的推移,該地圖已大幅增長,現在包含了來自 142 個…

實例演示Kafka-Stream消息流式處理流程及原理

以下結合案例&#xff1a;統計消息中單詞出現次數&#xff0c;來測試并說明kafka消息流式處理的執行流程 Maven依賴 <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams</artifactId><exclusio…

Java中的LinkedList(鏈表)(如果想知道Java中有關LinkedList的知識點,那么只看這一篇就足夠了!)

前言&#xff1a;在Java編程語言中&#xff0c;Java集合框架提供了一組豐富的數據結構&#xff0c;以滿足各種應用需求。其中&#xff0c;LinkedList作為一種常用的數據結構&#xff0c;具有獨特的優勢和廣泛的應用場景。 ???這里是秋刀魚不做夢的BLOG ???想要了解更多內…

linux radix-tree 基數樹實現詳解

radix tree&#xff0c;又稱做基數樹&#xff0c;是一種適合于構建key(index)與value(item)相關聯的數據結構。內核中使用非常廣泛。本文主要聚焦linux內核基數樹的代碼實現,大量注釋過的代碼。 radix-tree組織結構如下: 1、數據結構 /** The bottom two bits of the slot de…

如何通過JSON-RPC向以太坊鏈發送簽名交易數據?

概述 在以太坊開發當中,通過web3.js、ethers.js等提供的API方法,都可以完成與以太坊的轉賬交易。那么如何通過以太坊JSON-RPC與以太坊進行交易呢? 在以太坊的JSON-RPC當中,有eth_sendRawTransaction這個方法,可以向以太坊網絡提交預簽名的交易廣播。 curl https://main…

IDEA阿里云OSS實現文件上傳·解決蒼穹外賣圖片回顯

簡單交代配置阿里云OSS的思路 1. 首先去阿里云開通一個OSS服務&#xff0c;配置好一個自己的Bucket 2. 在IDEA配置Bucket 3. 拷貝官網的OSS工具類代碼 package com.sky.utils;import com.aliyun.oss.ClientException; import com.aliyun.oss.OSS; import com.aliyun.oss.OSS…

同三維T80001編碼器(帶屏)系列視頻使用操作說明書:高清HDMI編碼器,高清SDI編碼器,4K超清HDMI編碼器,雙路4K超高清編碼器

同三維T80001編碼器&#xff08;帶屏&#xff09;系列視頻使用操作說明書&#xff1a;高清HDMI編碼器&#xff0c;高清SDI編碼器&#xff0c;4K超清HDMI編碼器&#xff0c;雙路4K超高清編碼器 同三維T80001編碼器&#xff08;帶屏&#xff09;系列視頻使用操作說明書&#xff1…

【C語言】printf、fprintf、sprintf,scanf、fscanf、sscanf的區別

目錄 前言 printf、fprintf、sprintf printf fprintf sprintf scanf、fscanf、sscanf scanf fscanf sscanf 前言 這幾個函數曾出現在面試中&#xff0c;因為函數名都差不多&#xff0c;所以很讓人迷惑啊~ 下面我們逐個分析。 printf、fprintf、sprintf 這三個函數的主…