工作 3 年的同事不知道如何回滾代碼,我真是醉了。。

来源:https://www.cnblogs.com/javastack/archive/2022/04/18/16159784.html
-Advertisement-
Play Games

公司一個工作了 3 年的新同事,問我怎麼回滾他剛剛修改過的代碼,他說弄了半天不會,之前用的 SVN,沒用過 Git,說 Git 好難弄,我真是醉了。。 回滾代碼是我們程式員經常要操作的,使用 SVN 是很簡單,但使用 Git 也並不難,Git 也有很多好用的客戶端(比如:Sourcetree),簡單 ...


公司一個工作了 3 年的新同事,問我怎麼回滾他剛剛修改過的代碼,他說弄了半天不會,之前用的 SVN,沒用過 Git,說 Git 好難弄,我真是醉了。。

回滾代碼是我們程式員經常要操作的,使用 SVN 是很簡單,但使用 Git 也並不難,Git 也有很多好用的客戶端(比如:Sourcetree),簡單回滾操作都是沒問題的。

如果你喜歡用 Git 命令行,也可以使用 git revert 這種,但它是有回滾痕跡的,會多一個提交記錄,今天棧長就介紹一些沒有痕跡的理想狀態的回退。

本篇對於 Git 的一些基本概念和使用就不介紹了,不會的關註公眾號Java技術棧在後臺回覆 git 進行閱讀。

1、未提交

未提交有以下兩種情況:

1)已經在工作區修改了文件,但還未執行 git add 提交到暫存區。

2)已經執行了 git add 提交到暫存作,但還未執行 git commit 提交本地倉庫。

這時候回退:

git reset --hard

這樣等於清空了暫存區和工作區,本地倉庫回退到了最新的提交狀態。

2、已提交未推送

這種情況是指已經執行了 git add 提交到暫存區操作,又執行了 git commit 提交本地倉庫,但還未 git push 推送到遠程倉庫。

2.1 上個版本回退:

git reset --hard HEAD^

2.2 多個版本回退:

git reset --hard HEAD~N

N:代表數字,要回退的次數。

2.3 指定版本回退:

git reset --hard <commit_id>

2.4 直接回退到遠程最新版本:

git reset --hard origin/master

3、已推送

這種情況是指已經執行了 git add 提交到暫存區操作,又執行了 git commit 提交本地倉庫,還執行 git push 推送到遠程倉庫。

參考上面的 2.1~2.4 的方法,先強制回退到本地倉庫到上 N 個版本,再進行強制推送到遠程倉庫。

回退到上個版本示例:

git reset --hard HEAD^
git push -f

總結

第一種情況一般在工具上很容易操作,比如在 Sourcetree:

但 2、3 種情況在工具上面就沒法辦法操作了,至少在 Sourcetree 上是不行,需要在命令行進行回退,如果大家有知道的也可以分享下。

以上總結了一些棧長平時常用的 Git 回退方法,當然還有一些其他回退方式,以上也已經夠用了,希望對大家有幫助。

後面我還會分享一些我平時用到的修改歷史記錄的實戰乾貨,比如怎麼修改歷史提交信息、合併多次提交等,關註公眾號Java技術棧第一時間推送。

如果有學到,三連支持下哦~

好了,今天的分享就到這裡了,後面棧長會分享更多好玩的 Java 技術和最新的技術資訊,關註公眾號Java技術棧第一時間推送,我也將主流 Git 面試題和參考答案都整理好了,在公眾號後臺回覆關鍵字 "面試" 進行刷題。

版權聲明: 本文系公眾號 "Java技術棧" 原創,轉載、引用本文內容請註明出處,抄襲、洗稿一律投訴侵權,後果自負,並保留追究其法律責任的權利。

近期熱文推薦:

1.1,000+ 道 Java面試題及答案整理(2022最新版)

2.勁爆!Java 協程要來了。。。

3.Spring Boot 2.x 教程,太全了!

4.別再寫滿屏的爆爆爆炸類了,試試裝飾器模式,這才是優雅的方式!!

5.《Java開發手冊(嵩山版)》最新發佈,速速下載!

覺得不錯,別忘了隨手點贊+轉發哦!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 大家之前用python編寫過飛機大戰的部分代碼,只能夠展示英雄飛機,背景,敵機和發射子彈,今天把背景音樂,擊毀敵機,爆 炸特效,得分等等相關功能一併加入進來,代碼有點長,三百多行,你們要的代碼來了哦? 編程思路 主要使用pygame庫,類的創建,函數的調用等等來實現,話不多說,上程式。 編程實 ...
  • 反射機制雖然說增加了代碼的複雜程度但是提高代碼的靈活性,在以後的框架的學習中,配置文件的修改大部分都是利用的反射機制。和利用反射機制去做Runtime類這下麵方法exec,進行命令執行,後面去學習一下 ...
  • 官方numpy1.16.3,scipy,onnx的whl包有問題,不要直接安裝,自己編譯。 1.1安裝Python3.7 sudo apt update #檢查可更新文件 sudo apt install software-properties-common #安裝可添加源的工具 sudo add- ...
  • fastposter v2.8.0 發佈 電商海報編輯器 fastposter海報生成器,電商海報編輯器,電商海報設計器,fast快速生成海報 海報製作 海報開發。二維碼海報,圖片海報,生成分享海報 ...
  • 1、簡介 在企業級開發中、我們經常會有編寫資料庫表結構文檔的時間付出,從業以來,待過幾家企業,關於資料庫表結構文檔狀態:要麼沒有、要麼有、但都是手寫、後期運維開發,需要手動進行維護到文檔中,很是繁瑣、如果忘記一次維護、就會給以後工作造成很多困擾、無形中製造了很多坑留給自己和後人,於是萌生了要自己寫一 ...
  • 類與對象 | C++基礎 C++語言程式設計網課 C++中支持我們使用類來定義自己的數據類型。 類的基本思想:數據抽象(data abstraction) 與 封裝(encapsulation)。 數據抽象:依賴於 介面(interface) 和 實現(implementation) 分離的編程(及 ...
  • 作者:Denny Qiao(喬喜銘),雲智慧/架構師。 雲智慧集團成立於2009年,是全棧智能業務運維解決方案服務商。經過多年自主研發,公司形成了從IT運維、電力運維到IoT運維的產業佈局,覆蓋ITOM、ITOA、ITSM、DevOps以及IoT幾大領域,為金融、政府、運營商、能源、交通、製造等上百 ...
  • 近幾年 Python 語言之所以流行,是因為我們可以使用它編寫更少的代碼來實現複雜的功能。Python 開發者社區非常歡迎那些封 裝了複雜實現但是對使用者十分友好的工具包。 然而,Python 的簡便性不止如此。你能相信我們可以在不寫任何代碼的情況下使用 Python 嗎?在接下來的文章中,我會介紹 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...