Git學習之路(4)- 撤銷操作、刪除文件和恢覆文件

来源:http://www.cnblogs.com/qqandfqr/archive/2017/02/05/6362553.html
-Advertisement-
Play Games

▓▓▓▓▓▓ 大致介紹 經過前面的學習(小白學Git)已經建立了版本庫,並上傳了文件,這次來學習對這些文件進行基本的操作,即: ◆ 撤銷操作 ◆ 刪除文件 ◆ 恢覆文件 我在此之前,已經將三個文件提交到了版本庫 ▓▓▓▓▓▓ 撤銷操作 撤銷操作的語法: 撤銷操作一般有兩種情況: ◆ 文件修改後還沒有 ...


 

▓▓▓▓▓▓ 大致介紹

  經過前面的學習(小白學Git)已經建立了版本庫,並上傳了文件,這次來學習對這些文件進行基本的操作,即:

    ◆ 撤銷操作

    ◆ 刪除文件

    ◆ 恢覆文件

  我在此之前,已經將三個文件提交到了版本庫

 

 

 

▓▓▓▓▓▓ 撤銷操作

  撤銷操作的語法:

        git checkout -- 文件名

 

  撤銷操作一般有兩種情況:

    ◆ 文件修改後還沒有提交到暫存區,進行撤銷操作之後,文件恢復到和版本庫中一模一樣

    ◆文件修改後提交到了暫存區,進行撤銷之後,文件恢復到在提交到暫存區之前的狀態

 

  現在index.htm中的內容是:

        index.html

  

  我們修改他的內容為:

        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Document</title>
        </head>
        <body>
            
        </body>
        </html>

 

   1、文件未提交到暫存區

  用 git status 命令查看文件狀態

  

  可以看到 index.html 修改了,但是還沒有提交到暫存庫,我們對這個文件進行撤銷操作

  然後再打開 index.html 文件,就可以發現,它就恢復到了和版本庫中一模一樣的狀態

 

  2、文件提交到了暫存區,但未提交到版本庫

  用 git status 命令查看:

 

  如果這個文件寫錯了,想要修改,但是它已經提交到了暫存區。所以先需要將它撤銷到工作區

        git reset HEAD 文件名

  

  寫入命令並查看文件狀態

  可以看到,文件已經撤銷到了工作區,但是現在文件的內容還沒有變化,如果想要恢復到修改之前的狀態就使用

        git checkout -- 文件名

  此時,文件就和版本庫中的文件一模一樣了

  

 

▓▓▓▓▓▓ 刪除文件

  新寫一個文件,並提交到暫存區

  1、先刪除工作區中的文件,在刪除暫存區的文件

    要先刪除工作區中的文件,有兩種方式:

    ◆ 只在文件夾中刪除

    ◆用命令行

        rm 文件名

 

  刪除工作區的文件後,查看文件狀態:

  可以看到,工作區中的 game.js 刪除了,但是暫存區中的 game.js 還未刪除

  刪除暫存區中的文件:

        git rm 文件名

  如圖:

  這樣就將兩個去的文件都刪除了

 

  2、同時刪除工作區和暫存區中的文件

        git rm -f 文件名

  如圖:

 

   3、刪除暫存區的文件,不刪除工作區的文件

        git rm --cached 文件名

  如圖:

 

▓▓▓▓▓▓ 恢覆文件

  如果我們想要恢復某個文件或者整個項目到之前的某個版本,Git提供了方便的操作

  可以使用 git log 查看版本庫的信息

  如圖:

 

  如果想要將某個文件恢復到某個版本時的狀態,可以使用以下的命令:

        git checkout id 文件名

  

  其中的id是圖中框出來的,例如要將 index.html 文件恢復到 add three files 版本時的狀態:

  id可以不用全部複製過來,複製一部分就可以了

  

  如果要將所有的文件都恢復到某個版本,可以使用下麵的命令

        git reset --hard id

  如圖:

 

  除了用id恢復到某個版本庫時的狀態,還有別的寫法:

        //恢復到上一個版本
        git reset --hard HEAD^ 
        // 恢復到前兩個版本
        git reset --hard HEAD~2

 

  另外,可以用 git reflog 查看恢復的記錄

 

參考資料: 

      廖雪峰的官方網站-Git教程

      CODE幫助文檔-Progit中文版


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

-Advertisement-
Play Games
更多相關文章
  • css3彈性盒子模型,box-flex,box-orient,box-direction,box-align與box-pack,box-lines,box-ordinal-group ...
  • 當使用js時我們可以使用timestamp = (new Date()).valueOf();直接獲取當前時區時間點的時間戳。註意:js中時間戳的單位是毫秒,而php中則是秒 ...
  • 轉換字元串 你可以轉換一個數字,布爾值,或一個字元串的對象: 將字元串分割成多個子字元串 為了區分一個字元串轉換為一個子字元串數組,你可以使用的split()方法: 1 var myString = "coming,apart,at,the,commas"; 2 var substringArray ...
  • HTML5的語義化標簽以及屬性,可以讓開發者非常方便地實現清晰的web頁面佈局。大多數瀏覽器基本相容html5,但目前來說ie6/ie7/ie8還不相容html5標簽,所以需要javascript處理,讓其進行相容 方法一:javascript code 如果是IE9以下的IE瀏覽器將創建HTML5 ...
  • 我自認為對新技術還是比較有熱情的,可對於小程式這個“新技術”,我卻完全是被動的。去年9月份的時候,微信小程式開始內測,瞬間引爆朋友圈、知乎等一眾分享平臺。當時我大概瞭解了一下,覺得從技術角度上來說沒啥新意,也完全沒有get到網上那些人激動的點在哪裡,於是也就沒有花很多精力去深入瞭解和學習相關知識。到 ...
  • 上一篇博客講解了使用nodejs爬取博客園的博文,這次帶給大家的是下載網路上的圖片。 需要用到的第三方模塊有: superagent superagent-charset (手動指定編碼,解決GBK中文亂碼) cheerio express async (併發控制) 完整的代碼,可以在我的githu ...
  • 解決方法出自 http://stackoverflow.com/questions/23261301/required-attribute-not-work-in-safari-browser Safari不支持input的required屬性,可用js解決 本文原創,轉載請註明出處:http:// ...
  • (一)頁面變數對象data 對象data 有兩個方面用途 第一,前端wxml的數據渲染是通過設置此對象中定義的變數進行關聯展現的 第二,定義JS頁面中的頁面局部變數,使其整個頁面中可使用或調用 對象data定義的變數支持各種數據類型,string,int,[],{} 第一.wxml數據渲染,只要通過 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...