簡體   English   中英

Git(TortoiseGit) - 如何將單個文件還原到以前的版本,然后撤消還原?

[英]Git (TortoiseGit) - How to revert a single file to a previous revision and then undo the revert?

與TortoiseGit一起使用Git時:有人知道如何將單個文件(或完整的存儲庫)恢復到以前的版本嗎?

例如,我有一個包含多個文件的存儲庫。 一個文件存在三個修訂版(1; 2; 3)。 現在我想從版本3改回2。

TortoiseGit在“顯示日志”對話框中提供“恢復”功能,允許跳回特定版本,但這將恢復整個存儲庫而不是單個文件。

一旦我還原了一些東西,我就不知道如何撤消恢復並跳回到最新版本。

在TortoiseGit中,答案是右鍵單擊項目文件夾並單擊“顯示日志”,然后右鍵單擊要回滾的更改,並單擊“切換/結帳”。 它會讓你從提交堆棧中的那個奇怪的地方繼續,或者分支,以防你計划提交並希望事情保持理智。

從命令行: git checkout可能就是你想要的。

文檔顯示了一個示例:

$ git checkout master~2 Makefile

Makefile恢復為主分支中的兩個修訂版本

從TortoiseGit內部(通過Windows資源管理器)看起來您可以通過以下步驟執行此操作:

  • 在資源管理器中導航到文件所在的文件夾。
  • 右鍵單擊要還原的文件,從TortoiseGit上下文菜單中選擇Show log
  • 在頂部(“圖表”)中,選擇包含要還原到的文件版本的修訂版本
  • 在第三部分(文件列表)中,右鍵單擊該文件,然后選擇“ Revert to this revision
  • 您應該收到一條消息,如1 files revert to e19a77
  • 也可以獲取特定文件:

    • 右鍵單擊該文件
    • 選擇菜單項:Git Show Log

    TortoiseGit顯示一個包含所有修訂列表的對話框

    • 點擊之前的修訂版(2)

    在對話框底部的列表中,它顯示與提交相關聯的所有文件

    • 找到您要查看的文件
    • 右鍵單擊該文件並將“修訂版本”保存到
    • 這將保存文件的先前版本,並在文件上連接提交編號

    例如: - 原始文件是file.txt - 版本2將保存為文件-67b51a8.txt

    我正在使用TortoiseGit v2.2.0.0

    根據這些評論更新了我的答案:


    假設工作樹是干凈的,你想要:

    1. 簽出其先前版本的一些文件
    2. 測試
    3. 恢復到當前版本

    1. 簽出其先前版本的一些文件

      (a)右鍵單擊要還原的文件,然后單擊“顯示該文件的日志”

      在此輸入圖像描述

      (b)右鍵單擊文件列表中的文件,然后執行還原為父版本

      在此輸入圖像描述

      在此輸入圖像描述

      (c)重復(a),(b)直到你得到你想要的所有文件。

      在此輸入圖像描述

    2. 測試

    3. 恢復到當前版本

      (a)在資源管理器的上下文菜單中執行Revert ...

      這樣,您可以選擇要還原的文件。

      (b)或這種快速方式:在Log對話框中執行Reset Hard

      這樣,所有更改的文件都會還原。 (=>丟失所有工作目錄更改)

      在此輸入圖像描述

      在此輸入圖像描述

    (在TortoiseGit 1.8.16.1上測試,GfW 2.6.4.windows.1,Win 10 64bit)

    對於Tortoise版本2.3.0:

    您可以通過多種方式實現這一目標,但我認為最快的是:

    1. 右鍵單擊該文件
    2. 單擊菜單選項“與先前版本差異”
    3. 右鍵單擊文件的左(上一個)版本
    4. 單擊菜單選項“使用此整個文件”
    5. 保存更改(ctrl + s)

    暫無
    暫無

    聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

     
    粵ICP備18138465號  © 2020-2024 STACKOOM.COM