實用技巧 💼 git push -f 救回的方法!

筆者曾任職 Yahoo ,《軟體需求溝通 ─ 從外商公司學跨部門協作開發》線上課程講師,紛絲團《程式猿吃香蕉🍌》

(圖片來源:https://myatov.ru/news/git-dlja-novichkov/)

說真的,有些指令先存起來放,必要時是能救命的 (認真) ,大家可以先把這篇存起來留個印象,真的遇到時可以當作錦囊掏出來用 (笑)。
​
廢話不多說,開始教學!

◎ 使用情境​

不管什麼原因,總之你用了 git push -f 蓋掉了遠端的 branch。

◎ 處理步驟

❶ git reflog show remotes/ur_upstream/ur_branch
​請把 ur_upstream 改成你自己設定的 remote origin 名稱,然後把 ur_branch 換成你的 branch 名字,執行完畢後你會看到​

​❷ git reset --hard ur_commit_hash
在前一個步驟你看到一堆 commit hash,這時候選擇一個你要的 commit hash ,把指令中的 ur_commit_hash 替換你要的 commit hash 例如:
git reset — hard 9983b19d
​
❸ git push ur_upstream ur_branch -f
在前一個步驟 reset 完本地的程式碼後,在本機檢查一下是不是你要的版本,如果一切 okay,再直接用救回來的版本推到遠端就大功告成啦!

後記:
如果你有用 rebase 整理 commit 的習慣,工作又時常多線開發,需要多個 branch 切換,有時候難免不小心 rebase 整理完,使用 push -f 推錯 branch ,如果蓋掉一小包程式還可以,但如果蓋掉一大包真的會欲哭無淚,分享這個救援小技巧,希望大家都能在緊要關頭派上用場哦!Happy Coding :) ​

若是喜歡我分享的內容,歡迎幫我按個拍手,可拍 50下,給我一點鼓勵,或是加入我的粉絲團《程式猿吃香蕉🍌》,一起分享軟體知識與心得!

--

--

我們是一群軟體開發愛好者,喜歡將軟體知識以簡單生動的方式講給你聽,順口好消化,營養又健康!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Jayden Lin

Jayden Lin

Yahoo 擔任 Lead Engineer,負責廣告系統,帶團隊做跨國開發。也是《程式猿吃香蕉》團隊創辦人,喜歡將實用的軟體知識以簡單生動的方式講給大家聽 😄😄😄