Git ORIG_HEAD用法介紹

admin發表於2018-07-17

從外觀看,ORIG_HEAD與HEAD有些相似,確實如此。

關於HEAD的用法可以參閱Git HEAD是什麼一章節。

ORIG中文是“最初的”或者“原本”的意思,ORIG_HEAD也就有原本HEAD的含義,作用也印證這點。

Git ORIG_HEAD作用介紹:

在.gti目錄中,與HEAD檔案類似,還有ORIG_HEAD檔案。

當進行一些有風險的操作的時候,如reset、merge或者rebase,Git會將HEAD原來所指向commit物件的sha-1值存放於ORIG_HEAD檔案中。也就是說ORIG_HEAD可以讓我們找到進行最近一次危險操作之前的HEAD位置。

首先看一下當前分支的提交歷史:

[Shell] 純文字檢視 複製程式碼
$ git log --oneline

程式碼執行結果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201807/17/111553sd8t83y0b4fydr36.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

記住當前HEAD所在位置的commit提交的sha-1值(903d5af)。

下面執行回滾操作,程式碼如下:

[Shell] 純文字檢視 複製程式碼
$ git reset HEAD^ --hard

程式碼執行結果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201807/17/111638sx4wwnn9xbevozx1.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

現在看一下ORIG_HEAD檔案中的內容:

[Shell] 純文字檢視 複製程式碼
$ cat .git/ORIG_HEAD

程式碼執行結果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201807/17/111745sedw2pmwmepws2l8.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

內容恰好是在執行回滾操作前HEAD所在的commit物件的sha-1值。

相關文章