一次git錯誤送出的操作記錄:
$ git log
(錯誤的commit記錄,比如:push之前沒有pull,造成代碼錯亂)
commit c15809c85412701b8045c29e42b86ea79b757370 (HEAD -> zhejiang_1.13_part2_videoMsg_20190104)
Author: liupengzhen <[email protected]>
Date: Tue Feb 19 17:57:42 2019 +0800
OCT REM fix videoMst Template list

1、先使用reset嘗試恢複:
$ git reset (回退目前commit的版本)
執行之後 $ git status 檢視還是有很多沖突檔案。。
2、reset操作無效,使用cherry-pick版本管理操作:
2.1、回退本地送出記錄:
$ git add .
$ git reset --hard
HEAD is now at c15809c854 OCT REM fix videoMst Template list
2.2、建立本地分支,保留送出錯誤的版本号(代碼):
$ git branch backup (建立目前分支到backup分支,做記錄)
$ git branch (檢視所有分支)
$ git checkout backup (切換backup分支)
Switched to branch 'backup'
$ git log (檢視并記錄最近一次錯誤送出的版本号)
$ git branch
* backup
master
zhejiang_1.11.2_ABX_bugfix
zhejiang_1.11.2_ABX_dev
2.3、切換到開發分支,更新下來最新的遠端代碼:
$ git checkout zhejiang_1.13_part2_videoMsg_20190104 (切換到最新代碼的分支)
Switched to branch 'zhejiang_1.13_part2_videoMsg_20190104'
Your branch and 'origin/zhejiang_1.13_part2_videoMsg_20190104' have diverged,
and have 1 and 3 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
$ git reset --hard origin/zhejiang_1.13_part2_videoMsg_20190104
(回退一個版本,清空暫存區,将已送出的内容的版本恢複到本地,本地的檔案也将被恢複的版本替換)
HEAD is now at 02f2f76d95 oct rem:送出最新代碼
$ git pull (拉取最新代碼)
2.4、在開發分支上cherry-pick備份儲存的代碼版本:
$ git cherry-pick c15809c85412701b8045c29e42b86ea79b757370 (檢出之前備份的版本記錄)
[zhejiang_1.13_part2_videoMsg_20190104 3de0bce5a0] OCT REM fix videoMst Template list
Date: Tue Feb 19 17:57:42 2019 +0800
2 files changed, 9 insertions(+), 10 deletions(-)
$ git log (此時看到日志記錄中,檢出的版本已經出現了)
commit 3de0bce5a0a4a187c4f90eb1aa6778c6924679a2 (HEAD -> zhejiang_1.13_part2_videoMsg_20190104)
Author: liupengzhen <[email protected]>
Date: Tue Feb 19 17:57:42 2019 +0800
OCT REM fix videoMst Template list
commit 1f3f17ac2688537afe8639827c187b1c499152a0 (origin/zhejiang_1.13_part2_videoMsg_20190104)
Merge: 02f2f76d95 19231543f9
Author: wujiamin <[email protected]>
Date: Tue Feb 19 18:32:51 2019 +0800
Merge remote-tracking branch 'origin/zhejiang_1.13_part2_february_20190218' into zhejiang_1.13_part2_videoMsg_20190104
2.5、送出版本代碼:
$ git push (送出這次版本号的代碼即可)
---
3、删除本地本分分支:
檢視現有分支情況(remote/origin/master表示的是遠端分支):
删除本地備份的分支backup:
(git push origin --delete xxx 可以删除遠端分支xxx)
注:上面當我删除本地分支backup的時候,提示我:The branch 'backup' is not fully merged.
是以,我應該也可以通過git merge backup指令,将該分支上的代碼合到最新分支上。待驗證...