git 幾種還原版本_Git恢復之前版本的兩種方法reset、revert(圖文詳解)

一、問題描述

在利用github實現多人合作程序開發的過程中,我們有時會出現錯誤提交的情況,此時我們希望能撤銷提交操作,讓程序回到提交前的樣子,本文總結了兩種解決方法:回退(reset)、反做(revert)。

二、背景知識

git的版本管理,及HEAD的理解

使用git的每次提交,Git都會自動把它們串成一條時間線,這條時間線就是一個分支。如果沒有新建分支,那么只有一條時間線,即只有一個分支,在Git里,這個分支叫主分支,即master分支。有一個HEAD指針指向當前分支(只有一個分支的情況下會指向master,而master是指向最新提交)。每個版本都會有自己的版本信息,如特有的版本號、版本名等。如下圖,假設只有一個分支:

三、解決方法

方法一:git reset

原理: git reset的作用是修改HEAD的位置,即將HEAD指向的位置改變為之前存在的某個版本,如下圖所示,假設我們要回退到版本一:

適用場景: 如果想恢復到之前某個提交的版本,且那個版本之后提交的版本我們都不要了,就可以用這種方法。

具體操作:

1. 查看版本號:

可以使用命令“git log”查看:

也可以在github網站上查看:

2. 使用“git reset --hard 目標版本號”命令將版本回退:

再用“git log”查看版本信息,此時本地的HEAD已經指向之前的版本:

3. 使用“git push -f”提交更改:

此時如果用“git push”會報錯,因為我們本地庫HEAD指向的版本比遠程庫的要舊:

所以我們要用“git push -f”強制推上去,就可以了:

在github圖形化界面上看,遠程庫的HEAD也已經指向目標版本:

回退成功!

方法二:git revert

原理: git revert是用于“反做”某一個版本,以達到撤銷該版本的修改的目的。比如,我們commit了三個版本(版本一、版本二、 版本三),突然發現版本二不行(如:有bug),想要撤銷版本二,但又不想影響撤銷版本三的提交,就可以用 git revert 命令來反做版本二,生成新的版本四,這個版本四里會保留版本三的東西,但撤銷了版本二的東西。如下圖所示:

適用場景: 如果我們想撤銷之前的某一版本,但是又想保留該目標版本后面的版本,記錄下這整個版本變動流程,就可以用這種方法。

具體操作:

舉個例子,現在庫里面有三個文件:READ.md、text.txt、text2.txt。

1. 查看版本號:

可以通過命令行查看(輸入git log):

如圖,最近的兩個版本分別叫:“add text.txt”(即新增了文件text.txt)、“add text2.txt”(新增了文件text2.txt)。這個時候我們不需要text.txt這個文件了,那就是說不想要“add text.txt”那個版本的操作,那可以通過反做“add text.txt”這個版本來實現。

也可以通過github網站圖形化界面查看版本號:

2.使用“git revert -n 版本號”反做,并使用“git commit -m 版本名”提交:

(1)反做,使用“git revert -n 版本號”命令。如下命令,我們反做版本號為8b89621的版本:

git revert -n 8b89621019c9adc6fc4d242cd41daeb13aeb9861

注意: 這里可能會出現沖突,那么需要手動修改沖突的文件。而且要git add 文件名。

(2)提交,使用“git commit -m 版本名”,如:

git commit -m "revert add text.txt"

此時可以用“git log”查看本地的版本信息,可見多生成了一個新的版本,該版本反做了“add text.txt”版本,但是保留了“add text2.txt”版本:

3.使用“git push”推上遠程庫:

git push

查看github上顯示的遠程庫版本信息:

此時查看倉庫的文件,剩下兩個:READ.md、text2.txt

反做成功!

到此這篇關于Git恢復之前版本的兩種方法reset、revert(圖文詳解)的文章就介紹到這了,更多相關Git恢復之前版本內容請搜索我們以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持我們!

本文標題: Git恢復之前版本的兩種方法reset、revert(圖文詳解)

本文地址: http://www.cppcns.com/wangluo/xiangguanjiqiao/329250.html

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

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

相關文章

自定義列表視圖

通過繼承BaseAdapter寫一個子類,可以創建自定義列表視圖: public class MyListAdapter extends BaseAdapter { private LayoutInflater mInflater;//聲明一個LayoutInflater類變量 private Context mContext;//聲明一個Context類變量 priva…

計算機專業答辯模板,論文答辯模板-計算機專業.ppt

《論文答辯模板-計算機專業.ppt》由會員分享,可在線閱讀,更多相關《論文答辯模板-計算機專業.ppt(9頁珍藏版)》請在裝配圖網上搜索。1、基于S2SH論壇系統的設計與實現,專業: 姓名: 學號: 指導教師:,(附)論文…

springmvc請求返回一個字符_SpringMVC系列之Web利器SpringMVC

課程簡介:課程目標:了解SpringMVC和Spring的關系,能夠使用SpringMVC框架開發自己的Web應用。整合Spring , SpringMVC , MyBatis搭建項目開發環境,理解三層架構和MVC模式適用人群:適合對Java基礎知識應用自如&#xff0…

一次完整較為滲透過程

步驟一: 利用阿D瀏覽器通過https://s.bt.gg 注入關鍵字掃描發現注入點: http://www.rqyl.gov.cn/*****.php?ID153 用啊D跑不出賬號密碼 步驟二: 手工注入http://www.rqyl.gov.cn/*****.php?ID153 and 11 、and12出錯 猜字段ht…

html5 filereader讀取文件,H5的FileReader分布讀取文件應該如何使用以及其方法簡介...

這次給大家帶來H5的FileReader分布讀取文件應該如何使用以及其方法簡介,H5的FileReader分布讀取文件的使用以及其方法簡介的注意事項有哪些,下面就是實戰案例,一起來看一下。先介紹一下H5中FileReader的一些方法以及事件FileReader方法名稱 作…

mysql 查詢某一主鍵在那些表中中被設置為外鍵了

use information_schema; show tables; select * from KEY_COLUMN_USAGE where COLUMN_NAMEareaid; 轉載于:https://www.cnblogs.com/liaojie970/p/4799750.html

室內空氣流動原理圖_新風系統原理圖—新風系統原理介紹

如今我們在進行新家的裝修的時候,不少人為了家人的健康著想,都在選購家電的同時會選擇安裝一款新風系統。但是盡管如此,大家對新風系統原理其實并不了解,更不要提新風系統各部分的原理了,下面小編就結合新風系統原理圖…

計算機網絡線路爭用,計算機網絡系統集成復習要點

計算機網絡系統集成復習要點計算機網絡系統集成復習要點1.在信息領域,對于系統集成一般分為軟件集成、硬件集成和網絡系統集成。2.按網絡覆蓋范圍的大小,將計算機網絡分為局域網(LAN)、城域網(MAN)、廣域網(WAN)和互聯網。3. 計算機網絡拓撲結構是指一個…

mrsql查詢第二高的成績_mysql-查找用戶的最高分數和相關的詳細信息

我有一個表,用戶可以在其中存儲分數和有關該分數的其他信息(例如,分數注釋或花費的時間等).我想要一個mysql查詢,該查詢可找到每個用戶的個人最佳成績及其相關的注釋和時間等我嘗試使用的是這樣的:SELECT *,MAX(score)FROM table GROUP BY(用戶)這樣做的問題是,雖然…

centos 7 防火墻和端口配置

開啟redis端口,修改防火墻配置文件 vi /etc/sysconfig/iptables 加入端口配置 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379:7000 -j AC…

計算機網絡實驗11.6.1,6.111 2004春季課程:數位系統概論實驗(Introductory Digital Systems Laboratory, Spring 2004)...

摘要:Lectures and labs on digital logic, flipflops, PALs, counters, timing, synchronization, finite-state machines, and microprogrammed systems prepare students for the design and implementation of a final project of their choice: games, music, …

v380pro設備連接失敗_天貓精靈可以連接臺式電腦使用嗎?需要什么東西? 安裝操作是哪幾個步驟? 最好有圖片解說!...

使用語音將天貓精靈調到【藍牙配對】;打開電腦的藍牙適配界面,讓電腦找到天貓精靈,稍等片刻,點擊【使用遠程裝置的揚聲器聆聽來自此PC的音頻】后的連接;最后調整音量即可。以下是詳細介紹:1、對天貓精靈說【…

SWOT分析是神馬?

SWOT分析是思維的工具來理解事物的方式。人生在世,作為一個獨立的實體,不可避免地需要思考的問題。除非你是豬。豬比這更聰明。眠質量,都要完爆白領,藍領和金領們。SWOT分析分為四個象限。我們用一頭名豬——麥兜來打個例如就清楚…

hive 日誌怎麼查看_Hive各個日志里都存放了什么信息?

審計日志首先,對于審計日志來說,記錄了某個時間點某個用戶從哪個IP發起對HiveServer或者MetaStore的請求以及記錄執行的語句是什么。如下的HiveServer審計日志,表示在2016-02-01 14:51:22 用戶user_chen向HiveServer發起了show tables請求&am…

語音媒體和信令的測試軟件,IP多媒體子系統信令分析工具的設計與實現

摘要:IP多媒體子系統(InternetProtocolMultimediaSubsystem,IMS)為基于IP的移動和固定通信融合提供了基礎,并被業界認為是網絡演進的一個重要階段.與此同時,信令分析工具一直被電信運營商,設備供應商,測試儀器廠商廣泛而深入的關注.一款優秀的信令分析工具,可以使設…

大小寫轉換

1 ;小寫字母的ASCII碼比大寫字母的ASCII碼的值大20H。2 ;比如大寫字母A的ASCII值為01000001 小寫字母a的ASCII碼為:011000013 ;公式為 a(01100001) - 20H(100000) A(01000001)4 ;A(01000001) 20H(100000) a(01100001)5 assume cs:codesg,ds:datasg6 7 datasg seg…

四象限法推導lm曲線_試用幾何方法推導IS曲線(四象限法)

【簡答題】請根據自己的實際情況,撰寫一份適合自己的“征婚啟事”。內容積極健康。文體,字數等不限【填空題】由一棵二叉樹的前序序列和 序列可唯一確定這棵二叉樹。 (1.0分)【判斷題】完全二叉樹一定是滿二查樹。 (1.0分)【判斷題】二叉樹的前序遍歷中,任意一個結點均處于其子…

IDE-Ecplise-代碼注釋 模版 編碼規范 配色

說明: 代碼注釋主要用于方便代碼后期維護,編碼規范,增加代碼閱讀性和維護性。因網上看到的很多博客中片段局多,故整理后重寫一篇,方便交流學習。 先看下加過注釋模版后的效果。如上圖所示,創建類&#xff0…

通過路由遠程計算機重啟,華為無線路由器三種常用重啟的方法

日常重啟無線路由器并不是一個高難度動作,但是你了解華為(HUAWEI)家用無線路由器的三種常用的重啟的方法嗎?這三種方法也適用于絕大多數品牌的路由器,只不過在某個細節上略有區別。華為路由器的三種常用重啟方法分別是:硬重啟、軟…

個人信息管理系統代碼_學生信息管理系統(springboot + vue)

學生信息管理系統零、基礎項目為前后分離項目1、前端(front-end)基于 vue-admin-template 開發2、后端(rear-end)Jdk8Maven3MySQL5.7SpringBoot2SQLYog一、功能模塊圖圖片.png二、系統預覽1、登錄登錄.png2、首頁首頁.png3、查看學生信息查看學生信息.png4、編輯學生信息編輯學…