發表文章

目前顯示的是 一月, 2018的文章

[筆記] 不小心 Git push 了含有錯誤內容的 commit 怎麼辦?

狀況:
想要修改已經 push 的 commit,
而且很慘的是,剛剛也不小心已經在 Server 上執行 git pull 了,怎麼辦?步驟一:修改最後一次的 Commit完成如 git add 等 commit 變動後,將 git commit 的步驟加上 --amend 參數,如:(local) $ git commit --amend --no-edit 運用此參數,git 就會直接修改最後一次的 commit,而不會增加新的 commit。
這裡我們又加了 --no-edit 參數,就是不修改原本 commit 訊息的意思。步驟二:強制 push 遠端分支接著強制覆寫遠端 git 的分支紀錄(local) $ git push -f 步驟三:Server 強制 pull因為 Server 留有錯誤的 commit,所以要透過 rebase 來更改。
(server) $ git pull --rebase20190213 更新:不對,比較好的做法是 reset,否則錯誤檔案會留在工作目錄。(server) $ git fetch # 先取得最新的樹(server) $ git reset origin/master --hard # 再 hard reset 到正確的 origin/master延伸閱讀關於各個指令的詳細資訊,以下資料有更完整的敘述和說明:【狀況題】追加檔案到最近一次的 Commit - 為你自己學 Git【狀況題】怎麼有時候推不上去… - 為你自己學 GitPull 下載更新 - 為你自己學 Git