git reflog 後悔藥操作

2021-09-19 14:24:34 字數 1565 閱讀 3421

穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。

$ git log

commit e475afc93c209a690c39c13a46716e8fa000c366

(head

-> master)

author: michael liao

date: fri may 1821:

03:362018

+0800

add distributed

commit eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0

author: michael liao

date: fri may 1820:

59:182018

+0800

wrote a readme file

head指向的版本就是當前版本

因此,git允許我們在版本的歷史之間穿梭,使用命令:git reset --hard commit_id

$ git reset --hard eaadf4
現在,你回退到了某個版本,而且新新增了一些東西,新commit之後關掉了電腦,第二天發現把別人的**都沖掉了,gg…

$ git reflog

e475afc head@

: reset: moving to head

^1094

adb(

head

-> master)

head@

e475afc head@

: commit: add distributed

eaadf4e head@

:commit

(initial)

: wrote a readme file

終於舒了口氣,這時候要記好兩個值:他們分別是新commit的hash碼和舊版本最新的hash碼。然後執行回滾,回到舊版本最新上:

$ git reset --hard 1094a
別忘了,本地回退回來之後,記得強制推送到遠端,

$ git push origin head

--force

此時,我們又想保留新commit的**,怎麼辦呢?

這個時候就用上了git cherry-pick,剛剛我們回到了舊版本最新,現在我們想加上新commit,操作如下

git cherry-pick `新commit的hash碼`

期間可能會有一些衝突,按照提示解決就好

git reflog 程式設計師的後悔藥

前言世人皆說,這個世界上是沒有後悔藥可吃的!所以在做某件事之前,需要考慮到事情的後果!但是今天筆者想說的是,在git維護的 版本的世界裡,後悔藥常有,賣後悔藥的人卻不常有!今天筆者就分享下如何做乙個賣後悔藥的人。git reflog 使用場景很多時候,我們需要回退 版本,但是可能在操作的過程中,我們...

git常見後悔藥

撤銷本地全部沒有git add過的修改 git checkout 使用庫上檔案覆蓋本地修改 當然是指用本地庫覆蓋 git checkout file name 回退掉某一次commit,回退方式是自動生成乙個反向的commit,不會影響其他commmitgit revert commitid 將gi...

git上的後悔藥

修改上一次提交的文案 git commit amend 複製 我第一次提交時執行了命令 git add git commit m add some thing 但是commit後悔了,需要做一些修改再提交 再次提交的時候執行 git commit amend 這時候log日誌只顯示一條資訊 撤銷操作...