GIT實踐與常用命令---回退

實踐場景

場景1 回退提交

在日常工作中,我們可能會和多個同事在同一個分支進行開發,有時候我們可能會出現一些錯誤提交,這些錯誤提交如果想撤銷,可以有兩種解決辦法:回退( reset )、反做(revert)
keywords:reset、revert、reflog

回退 git reset

reset 操作就是修改 HEAD 指向的位置,將 HEAD 當前指向的位置回退到指定的某個版本,例如針對某個分支我們提交了三次(如圖所示),這是 reset 之前的三個 commit 記錄,目前 HEAD 指向的是 commit 3的位置,如果我們想把代碼回退到 commit 1的位置,怎么操作呢?

git reset --hard  'commit 1 的提交id'


操作完之后 commit 2和 commit 3 的提交記錄就沒有了,直接回退到了commit 1。注意區分兩個參數:hard& soft

  • –hard 直接回退
  • –soft 軟回退

soft只回退了commit 的信息,但是內容不會消失,工作區的文件內容都還在。如果還要提交,直接 commit 即可。這種操作的友好性就是如果我們本身只是想把commit的操作給回退,但是不想還原內容,保持所有內容都還在,這種操作就很合適,保證了代碼不會丟失。

重做/反做 git revert

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

反做前:

git revert -n  'commit 2 的提交id'
git commit -m 'test4'

反做后:

找回reset和revert的記錄 git reflog

如何找回因回退或反做而消失的commit記錄?上述兩種操作會造成有些 commit 記錄消失,但是如果自己又后悔了,想找回來,我們該怎么操作呢?可以使用reflog查看所有分支的所有操作記錄(包括已經被刪除的 commit 記錄和 reset 的操作)

git reflog
faa135e HEAD@{0}: commit: test3
783ef0a HEAD@{1}: commit: test2
2288ba8 HEAD@{2}: commit: test1
abddace HEAD@{3}: commit: test3
30df387 HEAD@{4}: commit: test3

參考資料

  • Git 版本回退(實際工作中基本都會遇到) - 掘金
  • yuque.GIT實踐與常用命令

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

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

相關文章

2023軟件測試的4個技術等級,你在哪個級別?

最近,我們討論了軟件測試工程的的分級,大家都貢獻了自己的想法,對于大家來說,軟件測試人的分級其實也代表了我們的進階方向,職業發展。總體來說,測試工程師未來發展有三個方向: 技術精英 行業專…

層次分析法--可以幫助你做決策的簡單算法

作用 層次分析法是一個多指標的評價算法,主要用來在做決策時,給目標的多個影響因子做權重評分。特別是那些需要主觀決策的、或者需要用經驗判斷的決策方案,例如: 買房子(主觀決策)選擇旅游地(…

android11 申請所有文件訪問權限

Android 11 引入了強制執行分區存儲的限制,導致應用默認不能訪問外部文件。 針對以前涉及較多文件的操作,可采用申請所有文件訪問權限的方式來解決這一問題,實現方式如下。 (雖然這樣做安全性低,官方并不推薦這樣&…

preplexity test

Preplexity test can use model claude and gpt-4, feel speed is ok and only for $10 with coupon (below give a link). Feel ok to try reference link: https://perplexity.ai/pro?referral_codeV6UOS5PH

Shell判斷:模式匹配:case(三)

系統管理工具箱 1、需求:Linux提供的豐富的管理命令,用戶管理,內存管理,磁盤管理,進程管理,日志管理,文件管理,軟件管理,網絡管理等等數十個工具包。如果你能通過shell編…

【代碼隨想錄】算法訓練計劃30

【代碼隨想錄】算法訓練計劃30 1、51. N 皇后 按照國際象棋的規則,皇后可以攻擊與之處在同一行或同一列或同一斜線上的棋子。 n 皇后問題 研究的是如何將 n 個皇后放置在 nn 的棋盤上,并且使皇后彼此之間不能相互攻擊。 給你一個整數 n ,…

微信API:探究Android平臺下Hook技術的比較與應用場景分析

微信API:探究Android平臺下Hook技術的比較與應用場景分析 正文: 在Android平臺開發中,Hook技術是一種常用的技術手段,用于在運行時修改應用程序的行為。下面對一些常見的Hook技術進行比較,并分析它們的適用場景和優缺…

信息系統項目管理師論文

軟考官網:中國計算機技術職業資格網 (ruankao.org.cn) 2020年 2020年下半年試題一:論信息系統項目的成本管理 2019年 2019年下半年試題一:論信息系統項目的整體管理 2019年下半年試題二:論信息系統項目的溝通管理

PCI5565反射內存網技術的應用研究

隨著嵌入式與通信技術的發展,數控系統經歷了由傳統的單處理器的集中式體系結構到開放式體系結構,再到多處理器的分布式數控系統體系結構的發展過程。分布式數控系統以高精、高速的加工特征為發展核心,同時以達到異構網絡間信息的無縫融合&…

分布式鎖3: zk實現分布式鎖

一 zk 實現分布式鎖 1.1 zk分布式操作命令 1.指令: ls / get /zookeeper create /aa "test" delete /aa set /aa "test1" 2..znode節點類型: 永久節點:create /pa…

優秀智慧園區案例 - 上海世博文化公園智慧園區,先進智慧園區建設方案經驗

一、項目背景 世博文化公園是上海的綠色新地標,是生態自然永續、文化融合創新、市民歡聚共享的大公園。作為世博地區的城市更新項目,世博文化公園的建設關乎上海城市風貌、上海文化展示、城市生態環境、市民游客體驗、上海服務品牌等,被賦予…

依托數據、平臺、知識增強等優勢 夸克大模型大幅降低問答幻覺率

“大模型時代,夸克有巨大機會創造出革新性搜索產品。”11月22日,夸克大模型公布了其面向搜索、生產力工具和資產管理助手的大模型技術布局。數據顯示,夸克千億級參數大模型登頂C-Eval和CMMLU兩大權威榜單,夸克百億級參數大模型同樣…

電大搜題——讓學習變得輕松高效

作為一名現代學者,您一定時刻關注著教育領域的進展和創新。今天,我將向大家介紹一個名為“電大搜題”的神奇工具,它將為您的學習之路帶來一場完美的革命。 在快節奏的現代社會中,學習已經成為每個人追求成功的必經之路。然而&…

【數據結構】動態順序表詳解

目錄 1.順序表的概念及結構 2.動態順序表的實現 2.1創建新項目 2.2動態順序表的創建 2.3接口的實現及測其功能 2.3.1初始化 2.3.2尾插 2.3.3頭插 2.3.4尾刪&頭刪 2.3.5打印&從任意位置插入 2.3.6刪除任意位置的數據 2.3.7查找 2.3.8銷毀順序表 3.結語 He…

【交易誤區】初學者常犯的MT4外匯交易錯誤有哪些?

作為初學者,踏入外匯交易市場時,往往會陷入一些常見的誤區,導致交易效果不佳甚至遭受損失。在本文中,我將列舉并解釋五個初學者常見的MT4外匯交易錯誤,并提供相應的解決方案,幫助您避免這些錯誤&#xff0c…

java項目之社區互助平臺(ssm+vue)

項目簡介 社區互助平臺實現了以下功能: 1、一般用戶的功能及權限 所謂一般用戶就是指還沒有注冊的過客,他們可以瀏覽主頁面上的信息。但如果有中意的社區互助信息時,要登錄注冊,只有注冊成功才有的權限。2、管理員的功能及權限 用戶信息的添…

react大文件上傳

目錄 大文件上傳優點: 大文件上傳缺點: 大文件上傳原理: 為什么要用md5 實現流程: 部分代碼1: 部分代碼2:? 大文件上傳優點: 文件太大分片上傳能加快上傳速度,提高用戶體驗能斷點續傳 如果上次上傳失敗…

簡單工程模式

代碼實現 //simpleFactory.h #ifndef _SimpleFactory_H_ #define _SimpleFactory_H_#include <iostream> #include <exception> #include <string>using namespace std;class Operation { protected:double _numberA 0;double _numberB 0; public:Operat…

udp通信socket關閉后,緩存不清空

udp通信socket關閉后&#xff0c;緩存不清空 udp通信socket關閉后&#xff0c;緩存不清空如何清空udp緩存 udp通信socket關閉后&#xff0c;緩存不清空 關閉一個 UDP socket 連接后&#xff0c;底層接收緩沖區中存儲的數據不會被清空。實際上&#xff0c;關閉 socket 連接并不…

MybatisX插件使用

Mybatis X插件 MybatisX 是一款基于 IDEA 的快速開發插件&#xff0c;為效率而生。MybatisX官網&#xff1a;https://baomidou.com/pages/ba5b24/#%E5%8A%9F%E8%83%BD安裝方法&#xff1a;打開 IDEA&#xff0c;進入 File -> Settings -> Plugins&#xff0c;輸入 mybat…