欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

git之reflog命令的使用

 更新時間:2023年08月23日 09:42:14   作者:一戶董  
git reflog 命令可以用來查看本地倉庫的所有操作記錄,包括所有分支的提交、合并、重置等操作,本文就詳細的介紹一下如何使用,感興趣的可以了解一下

寫在前面

本文一起看下reflog命令。

1:場景描述

在開發(fā)的過程中,因為修改錯誤,想要通過git reset命令恢復(fù)到之前的某個版本,但是選擇提交ID錯誤,導(dǎo)致多恢復(fù)了一個版本,假定,該版本對應(yīng)的內(nèi)容還沒有push到遠端倉庫,并且該提交十分重要,可能決定了一個將要倒閉的公司是否能夠繼續(xù) 茍延殘喘 ,怎么辦?肯定要恢復(fù)回來,git reflog就可以幫你輕松搞定。本文從純命令操作方式和sourcetree界面操作方式來進行模擬。

2:純命令操作

2.1:初始化git倉庫

$ pwd
/d/test/testreflog
JHP+Administrator@jhp MINGW64 /d/test/testreflog
$ git init
Initialized empty Git repository in D:/test/testreflog/.git/

2.2:執(zhí)行3次提交

添加a.txt并提交

$ touch a.txt
JHP+Administrator@jhp MINGW64 /d/test/testreflog (master)
$ echo "a" > a.txt
JHP+Administrator@jhp MINGW64 /d/test/testreflog (master)
$ git add a.txt
warning: LF will be replaced by CRLF in a.txt.
The file will have its original line endings in your working directory
JHP+Administrator@jhp MINGW64 /d/test/testreflog (master)
$ git commit -m'add a.txt'
[master (root-commit) 0c70790] add a.txt
 1 file changed, 1 insertion(+)
 create mode 100644 a.txt

添加b.txt并提交

$ touch b.txt
JHP+Administrator@jhp MINGW64 /d/test/testreflog (master)
$ echo 'b' > b.txt
JHP+Administrator@jhp MINGW64 /d/test/testreflog (master)
$ git add b.txt
warning: LF will be replaced by CRLF in b.txt.
The file will have its original line endings in your working directory
JHP+Administrator@jhp MINGW64 /d/test/testreflog (master)
$ git commit -m'add b.txt'
[master b68fdbe] add b.txt
 1 file changed, 1 insertion(+)
 create mode 100644 b.txt

添加c.txt并提交

$ touch c.txt
JHP+Administrator@jhp MINGW64 /d/test/testreflog (master)
$ echo 'c' > c.txt
JHP+Administrator@jhp MINGW64 /d/test/testreflog (master)
$ git add c.txt
warning: LF will be replaced by CRLF in c.txt.
The file will have its original line endings in your working directory
JHP+Administrator@jhp MINGW64 /d/test/testreflog (master)
$ git commit -m'add c.txt'
[master 1b263f8] add c.txt
 1 file changed, 1 insertion(+)
 create mode 100644 c.txt

查看提交日志

$ git log -9 --pretty=oneline
1b263f8227fbb8050cee5bde301c11fa6a4d3467 (HEAD -> master) add c.txt
b68fdbe04611a68e16f538f1efb63727c1fc5e64 add b.txt
0c70790e7d7b54a582c81defe27a49b47df1e6db add a.txt

模擬錯誤操作

假定 add c.txt 是我們誤操作,因此我們需要執(zhí)行命令 git reset --hard b68fdbe046 來恢復(fù)到其之前的一個版本,但是操作失誤,一直還原到了 add a.txt 對應(yīng)的提交,如下:

$ git reset --hard 0c70790e7d7b
HEAD is now at 0c70790 add a.txt
JHP+Administrator@jhp MINGW64 /d/test/testreflog (master)
$ git log -n9 --pretty=oneline
0c70790e7d7b54a582c81defe27a49b47df1e6db (HEAD -> master) add a.txt

在準(zhǔn)備工作中,當(dāng)我們執(zhí)行 git reset --hard 后,被恢復(fù)代碼之后的提交通過git log就看不到了,但是git reflog其實是可以看到的,因為該命令看到的是進行過的所有的操作,對比如下圖:

如下:

$ git reflog -n9 --pretty=oneline
0c70790 (HEAD -> master) HEAD@{0}: reset: moving to 0c70790e7d7b
1b263f8 HEAD@{1}: reset: moving to HEAD
1b263f8 HEAD@{2}: commit: add c.txt
b68fdbe HEAD@{3}: commit: add b.txt
0c70790 (HEAD -> master) HEAD@{4}: commit (initial): add a.txt

注意這里的 HEAD@{n} 表示head指針在n次移動之前的情況,比如我們要恢復(fù)到 add b.txt 的提交,只需要執(zhí)行如下操作即可:

$ git reset --hard HEAD@{3}
HEAD is now at b68fdbe add b.txt
JHP+Administrator@jhp MINGW64 /d/test/testreflog (master)
$ git log -n3 --pretty=oneline
b68fdbe04611a68e16f538f1efb63727c1fc5e64 (HEAD -> master) add b.txt
0c70790e7d7b54a582c81defe27a49b47df1e6db add a.txt

3:sourcetree界面操作

3.1:初始化git倉庫

git init 。

3.2:使用sourcetree打開倉庫

然后選擇倉庫的文件夾即可。

此時因為我們什么也沒有做,所以信息都是空的。

3.3:創(chuàng)建文件a.txt并提交

$ touch a.txt
JHP+Administrator@jhp MINGW64 /d/test/testreflog (master)
$ echo "a" > a.txt

暫存并提交:

接著同樣的方式,添加b.txt,c.txt,最終如下圖:

3.4:模擬錯誤操作

假定 add c.txt是我們誤操作,因此我們需要恢復(fù)到其之前的一個版本,但是操作失誤,一直還原到了add a.txt對應(yīng)的提交,如下:

3.5:恢復(fù)操作

同命令行方式。這里sourcetree沒有提交對應(yīng)的UI操作。

寫在后面

參考文章列表

【學(xué)了就忘】Git操作 — 51.git reflog命令 。

git救急之reflog恢復(fù)錯誤的提交 。

到此這篇關(guān)于git之reflog命令的使用的文章就介紹到這了,更多相關(guān)git reflog命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 適合后臺管理系統(tǒng)開發(fā)的12個前端框架(小結(jié))

    適合后臺管理系統(tǒng)開發(fā)的12個前端框架(小結(jié))

    當(dāng)你寫項目的時候,如何快速的完成一個項目的搭建,這個時候就需要借助到一些模板了,前端開發(fā)的一個好處就是,各類UI模板都是相當(dāng)?shù)凝R全的,本文就介紹幾個前端框架,感興趣的可以了解一下
    2021-06-06
  • ToDesk安裝與使用教程(全平臺支持)

    ToDesk安裝與使用教程(全平臺支持)

    這篇文章主要介紹了ToDesk安裝與使用教程,ToDesk非常好用而且是全平臺支持,喜歡的朋友跟隨小編一起看看吧
    2024-08-08
  • Hive?判斷某個字段長度的示例代碼

    Hive?判斷某個字段長度的示例代碼

    hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,用來進行數(shù)據(jù)提取、轉(zhuǎn)化、加載,這是一種可以存儲、查詢和分析存儲在Hadoop中的大規(guī)模數(shù)據(jù)的機制,這篇文章主要介紹了Hive?判斷某個字段長度,需要的朋友可以參考下
    2024-08-08
  • RPC、RMI、SOAP的區(qū)別詳解

    RPC、RMI、SOAP的區(qū)別詳解

    這篇文章主要介紹了RPC、RMI、SOAP的區(qū)別詳解,本文還同時講解了RPC、SOAP、WSDL的關(guān)系,需要的朋友可以參考下
    2015-07-07
  • HTTP狀態(tài)代碼集合 方便查詢

    HTTP狀態(tài)代碼集合 方便查詢

    HTTP協(xié)議是基于請求/響應(yīng)范式的。一個客戶機與服務(wù)器建立連接后,發(fā)送一個請求給服務(wù)器,請求方式的格式為,統(tǒng)一資源標(biāo)識符、協(xié)議版本號,后邊是MIME信息包括請求修飾符、客戶機信息和可能的內(nèi)容。
    2011-02-02
  • 聯(lián)邦學(xué)習(xí)論文解讀分散數(shù)據(jù)的深層網(wǎng)絡(luò)通信

    聯(lián)邦學(xué)習(xí)論文解讀分散數(shù)據(jù)的深層網(wǎng)絡(luò)通信

    這篇文章主要為大家介紹了論文解讀分散數(shù)據(jù)的深層網(wǎng)絡(luò)通信有效學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Ollama整合open-webui的步驟及訪問

    Ollama整合open-webui的步驟及訪問

    這篇文章主要介紹了如何通過源碼方式安裝OpenWebUI,并詳細說明了安裝步驟、環(huán)境要求以及第一次使用時的賬號注冊和模型選擇過程,需要的朋友可以參考下
    2025-02-02
  • 合成大西瓜開發(fā)源碼手把手教你運行和部署大西瓜游戲項目(附源碼)

    合成大西瓜開發(fā)源碼手把手教你運行和部署大西瓜游戲項目(附源碼)

    這篇文章主要介紹了合成大西瓜開發(fā)源碼手把手教你運行和部署大西瓜游戲項目(附源碼),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • 淺談音視頻 pts dts基本概念及理解

    淺談音視頻 pts dts基本概念及理解

    本文主要介紹了音視頻 pts dts基本概念及理解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 深入理解TCP協(xié)議與UDP協(xié)議的原理及區(qū)別

    深入理解TCP協(xié)議與UDP協(xié)議的原理及區(qū)別

    網(wǎng)絡(luò)編程有三個要素,分別是IP地址、端口號和通信協(xié)議,那本文主要講述的是TCP與UDP這兩種通信協(xié)議,以及編程的實現(xiàn),感興趣的可以了解一下
    2021-06-06

最新評論