Git 撤回的用法

2021-09-10 09:39:48 字數 954 閱讀 8744

在github中我們遇到的乙個很常見的需求是:如何將當前的**回退到之前的乙個版本,或者在回退到之前的版本後,如何再回到當前版本。假設乙個實際場景,假設我們的版本鏈是v1,v2,v3,v4,而我們當前工作目錄的版本是v4,我們想回退到v2,當回退到v2後,我們發現我回退錯了,向再次回退到v4,那這一些的操作如何實現呢?下面以此需求展開github的撤銷的用法

首先介紹一下git reset 的用法

git reset [-q]

[--]

…​git reset (--patch | -p)

[--]

[…​]

experimental: git reset [-q]

[--stdin [-z]][

]git reset [--soft | --mixed [-n]

| --hard | --merge | --keep]

[-q]

每個項的具體定義可以見git reset --help彈出的說明文件。這裡重點闡述git reset的soft和hard,簡單理解soft只將回退動作指定到暫存區(i.e.,不改變索引區和工作目錄的內容),而hard將動作指定到暫存區、索引區、工作目錄,這個操作將直接覆蓋工作目錄的**(屬於危險操作,但是也不是不可恢復(i.e.,撤銷),但是若工作目錄有未提交的**,覆蓋將是不可恢復的,因為git沒做記錄)。

使用git reset撤銷

首先使用git reflog檢視整個版本鏈,然後使用git reset --soft實現暫存區跳轉(i.e.,暫時還不想改變工作區的**或者工作區有**未提交),使用git reset實現工作區**跳轉(切換到其它版本上開發),仔細觀察下圖即可知道此處思想。

git撤回和檢視

linux下文字的新建和追加內容 git cat file p id可檢視當前master的資料 觀察git 內部如何儲存commit 隨便便抓乙個 commit 的 sha1 開始 git cat file p a08181bf3 觀察這個commit,找出 tree 位置 git cat fil...

git怎麼撤回提交

git reset head 撤消上一次的commit 不帶引數預設是 mixed 例 git reset mixed head 也可以寫成git reset head 1 git reset head 2 如果你進行了2次commit,想都撤回,可以使用head 2 git reset fdaea...

撤回的實現

工作流系統的回退流,是指流程例項執行到一定階段後,可以主動的選擇回退到曾經執行過的任意軌跡上。回退流的發起方是當前步驟的任務執行人,選擇主動的回退,上面有一篇 回退流的實現,主要說明了回退流的實現過程。工作流系統的撤回,是指流程例項執行了一定的軌跡後,上一步的任務執行人,選擇撤回剛剛提交的任務,使得...