Git 版本回退

原文來自:http://smaij.com/git-%E7%89%88%E6%9C%AC%E5%9B%9E%E9%80%80/ php


若是咱們修改了文件。提交到github 版本庫後。發現代碼有點錯亂了。你想要回到上一個或者上兩個版本中去。那麼,很幸運,Github 提供有很方便的回滾功能。 咱們經過一組實驗來明瞭。 下面我commit 了三個版本。修改一個叫 test.php 的文件。 版本1:version 1.0git


第一次修改的時候。
**********************


版本2:version 2.0github


第二次修改的時候。
**********************


版本3:version 3.0shell


第三次修改的時候。
**********************


版本控制系統一個很重要的功能,固然就是管理各個版本間的問題了。Git 也是爲了處理這個問題而誕生的,Git 中有一個命令能夠查看歷史記錄。就是  git  log  這個命令了。ide


1


這個命令顯示的是提交的記錄,在這裏我修改了三次後提交了三次。最近一次是version 3.0 ,最先一次是version 1.0 。 到這裏。你首先要知道你如今所處的是那個版本,如何回到那個版本。 在Git 中,使用命令 git reset 來操做進退。參數 HEAD 表示當前的版本,假如你當前已經退回到了version 2.0 版本。那麼你使用版本控制


git reset --hard HEAD


則會返回version 2.0 的版本IDget


2d9a6407f9becba08ce46ae55035e0c7f71da8b1


要回到當前版本的上一個版本去。就是用it


git reset --hard HEAD^


在 HEAD^^ 表示退回到兩個版本前。有多少個^ 就是退回到多少個版本去,若是不幸要退後25個版本。你也能夠io


git reset --hard HEAD~25

2


好,退回來了。忽然發現問題原來是最新版一個文件中缺乏了一個 ‘;’。此時怎麼辦。還能回去嗎? 能! 在用 git log 看到的版本中。最新的那些版本已經不在了。怎麼辦? github 已經意料到咱們會疏忽。因而。他幫咱們記錄了咱們的操做……感謝! 使用 git reflog 來查看你的每一次命令操做記錄class


4


這就好辦了。我要回到version 3.0 去。


5


好了好了。太好了   總結:

  • HEAD 指向的是當前的版本ID 。咱們也能夠使用它來穿梭到上下的版本去。

  • 使用git log 能夠看到咱們git中的提交、回退、版本ID 等信息

  • 使用git reflog 查看命令歷史。使用它來挽救過分回退

相關文章
相關標籤/搜索