只需三部就可以把你不知道提交到了哪的代碼呆贿,再移動(dòng)到選定分支上嚷兔;
這種情況的出現(xiàn)原因:
1: 有可能是確實(shí)提交到了某條分支上,但是提交之后發(fā)現(xiàn)分支錯(cuò)了做入,找不到那次提交了冒晰;
2: 有可能是未檢出分支或者未切換分支,直接在分離的HEAD上進(jìn)行開發(fā)了母蛛, 這時(shí)你commit后的代碼實(shí)際是屬于游離狀態(tài)的翩剪,不屬于任何分支,但是你的電腦本地是存在提交記錄的彩郊;這就是找回代碼的依據(jù)前弯;
第一步:
終端:git reflog
(查看所有分支的所有操作記錄(包括commit和reset的操作,包括已經(jīng)被刪除的commit記錄秫逝,git log則不能察看已經(jīng)刪除了的commit記錄)
找到你丟失的那次commit記錄恕出,記下commit id (就是前面的一串字母加數(shù)字)
第二步:
git checkout <你想提交到的分支上>
例如:git checkout master
(查看遠(yuǎn)端的全部分支: git branch -a (列出全部的分支名))
第三步:
git cherry-pick <commit id> 例如:git cherry-pick hbd37gf76sg
(<commit id>就是在第一步里記錄的commit id) 選出這次記錄重新提交到當(dāng)前分支上
(此時(shí),如果使用了SourceTree违帆,就可以在該分支的提交記錄上看到了此次提交)浙巫, 然后再正常的pull + push 就OK了
文獻(xiàn)參考:
git cherry-pick簡介
git checkout簡介
git 本地提交未Push 自動(dòng)切到其他版本的解決姿勢