Git還原代碼版本(Git GUI)

Git 代碼版本還原方法

這裏的教程是關於Windows 上的 Git GUI

在使用 Git 管理自己的代碼和資料時,難免會遇到意料之外的事。比如誤操作,將當前的分支刪除;或者重置到某個版本,然後發現自己想要的代碼找不到了;又或者需要還原到之前提交的某個版本,但是那個版本已經被重置過,在歷史中找不到了。

忙活了大半天,發現辛苦換來的成果都沒了,遇到這種情況幾乎是要崩潰的,不過幸好我們還有 Git。

一般情況下,如果在版本的分支歷史上,還可以找到想要的那個版本,那通常比較簡單,只要選擇重置到該版本就可以了。

重置類型有三種模式可供選擇,soft、mixed 和 hard 的區別如下:

soft 不改動工作區和索引

假設有一些 commits

A - B - C (master)

HEAD 指向 C, 並且暫存區(stage,或稱爲 index)matches C.

當使用 git reset --soft B 時,master 和 HEAD 指向 B,但是依然保留了 C 添加跟蹤的文件,此時會將這些文件放入暫存區中,顯示爲已緩存。同時工作區中修改的文件,顯示爲未緩存。

mixed 保持工作區不變,重置索引

當使用 git reset --mixed B 時,master 和 HEAD 指向 B,這時候 C 添加跟蹤的文件仍然會在,但是會顯示爲未緩存(不是版本控制),而當前工作目錄中的修改內容,仍然會在,顯示未緩存的狀態

(如果不知道怎麼選,默認使用 mixed)

hard 重置索引和工作區(丟棄所有本地變更)

當使用 git reset --hard B 時,C 添加跟蹤的文件,以及當前工作目錄中的修改內容,都會丟失。


如果比較悲劇,分支歷史上已經找不到想要的那個版本的代碼了,但是別急,只要是有提交的代碼,Git 都能找回來。

我在 Windows 下使用 TortoiseGit,只要右鍵找到顯示引用記錄,就能找到所有的操作記錄,然後選擇想要的版本,重置過去就可以了。即便是現在這一步的重置操作選錯了版本也沒事,因爲這個操作也被記錄下來,你還是可以重置到正確的版本。

看到這張圖,是不是一股暖流涌上心頭,終於找回來了。

曾經嘗試過用命令來操作,但是試了很久都沒成功,只好放棄,改用 TortoiseGit 來操作。TortoiseGit 在 Windows 下幾乎是最好用的 Git GUI 工具了。

自從使用了 Git,只要有 commit 過的代碼,再也不擔心會丟了,盡情的 commit 吧。



發佈了28 篇原創文章 · 獲贊 41 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章