Git rebase skip誤操做後,找回提交的commit(誤刪未push本地分支同理)

問題描述:

將一個開發好的feature branch merge到master branch的時候,發現代碼有一些舊了,就作了一次rebase。結果衝突不少項目太多,將默承認以skip的commit都skip了(圖形化git工具)。解決一堆衝突之後,發現本身提交的部分commit不見了。git

解決方案:

  1. 在命令行輸入git reflog,會出現丟失的commit信息列
  2. 找到本身須要的commit行, git checkout -b recovery q1dw23d
  3. git checkout master git merge recovery 切回主分支

反思:

  1. 慎用 git rebase -skip
  2. commit的時候認真記錄。 一個feature branch 在測試的之後發現問題,或者增強的時候,每次提交都fix bug, enhance balabala... 致使在尋找commit的時候花了好半天
  3. git 上提交過的東西通常都會留下痕跡,發生誤操做淡定!
  4. 這個操做也適合找回誤刪了本地commit過可是未push到遠程的branch

解決問題的時候參考了簡書的文章,感謝。工具

相關文章
相關標籤/搜索