使用 EGit (Eclipse Git Plugin) 推送至遠端倉庫時,反覆出現 non-fast-forward 錯誤。依網路教學執行 pull --rebase 或 merge 解決後,下一次推送又再次報錯。
提交對話框中勾選了 "Amend Last Commit"(修正上一次提交)。此選項會將當前變更合併至前一個提交,並改寫提交歷史(修改 Commit Hash)。導致本地分支歷史與遠端分支發散,每次推送都被視為非快轉更新而被拒絕。
git push -f origin branch(需確認無人同步該分支)。git commit --fixup 稍後 rebase -i --autosquash 整理。non-fast-forward 本質是本地歷史與遠端歷史發散。EGit 的 Amend 選項隱蔽且易誤觸,導致反覆改寫歷史。養成「不輕易改寫已推送歷史」的習慣,或改用命令列 git 更清晰掌控提交圖譜。