前言:
個(gè)人記錄學(xué)習(xí)筆記用
問題概述:
當(dāng)時(shí)同一版本中沈撞,多人在同一分支上共同開發(fā)励幼。提交commit時(shí)發(fā)生沖突汰寓。在解決了沖突后再次ga .
后使用git --rebase continue
沒有反應(yīng),腦袋一抽就使用了git --rebase skip
苹粟,于是辛苦寫了兩個(gè)小時(shí)的代碼沒有了踩寇。。六水。
解決:
1.git reflog操作,查看提交的歷史記錄辣卒,找到自己的提交
2.強(qiáng)制回退到上一次提交:git reset --hard 791a1fc 或者 git reset --hard HEAD@{2} (HEAD@{2} git reflog顯示在分支前面的 數(shù)字表示往前退幾個(gè))
3.再一次rebase掷贾,如果有沖突,就解決沖突荣茫,
4.進(jìn)行g(shù)it add -a 以及git rebase --continue
補(bǔ)充:
git rebase沖突解決:
(http://www.cnblogs.com/chenjunjie12321/p/6876220.html)
1想帅、使用 $git rebase --abort
執(zhí)行之后,本地內(nèi)容會(huì)回到提交之間的狀態(tài)啡莉,也就是回到以前提交但沒有pull是的狀態(tài)港准,簡(jiǎn)單來說就是撤銷rebase旨剥。
2、使用 $git rebase --skip
git rebase --skip 引起沖突的commits會(huì)被丟棄浅缸,開發(fā)者對(duì)文件的commit無效轨帜,自己修改的部分全部無效,因此衩椒,在使用skip時(shí)請(qǐng)慎重蚌父。
3、使用 $git rebase --continue
執(zhí)行完$git pull --rebase 之后毛萌,本地如果產(chǎn)生沖突苟弛,手動(dòng)解決沖突之后,用"git add"命令去更新這些內(nèi)容的索引(index)阁将,然后只要執(zhí)行:
$ git rebase --continue 就可以線性的連接本地分支與遠(yuǎn)程分支膏秫,無誤之后就回退出,回到主分支上做盅。
注意:一般情況下缤削,修改后檢查沒問題,使用rebase continue來合并沖突言蛇。
git log與git flog的區(qū)別:
git log可以顯示所有提交過的版本信息僻他,不包括已經(jīng)被刪除的 commit 記錄和 reset 的操作
git reflog是顯示所有的操作記錄,包括提交腊尚,回退的操作吨拗。一般用來找出操作記錄中的版本號(hào),進(jìn)行回退婿斥。
git reflog常用于恢復(fù)本地的錯(cuò)誤操作劝篷。