重新 commit 提交 git 紀錄

2022/01/08 Git

前言

在進行版本控制的時候若反悔剛剛 commit 的內容,這裏有兩種解決辦法。第一種可以參考這篇文章透過 filter-branch 將不要的檔案透過指令從 git 專案中移除。第二種是直接將剛剛 commit 的內容從 git 中移除。本篇教學將會記錄第二種方法的操作流程。

使用 reset 重新 Commit

假設我新增了一個 README 檔案並提交一個新的 commit 了。我們透過 git log 可以查看歷史的 commit 紀錄,可以發現有兩筆。

但是我反悔了想重新修改對於上圖紅框的內容,此時可以透過 reset 返回上一個步驟。

git reset HEAD^

輸入完指令後再輸入 git log 可以發現原本的 commit 內容就不見了。

不小心使用 hard 模式 Reset 了某個 Commit,救得回來嗎?

切記!使用 reset 時後面加上 --hard 時要確保資料已經備份,因為他會強制的將上次一更動的文件直接從專案中移除!不僅 Commit 看起來不見了,檔案也消失了。筆者建議初學者沒事別用這個指令。

git reset –hard HEAD~1 (小心使用!!!)

若真的不幸輸入該指令某些重要文件直接被移除了。其實別擔心 git 只是暫時幫你搬到其他暫存地方隱藏起來。我們可使用 reflog 指令來看一下紀錄:

git reflog

git log 如果加上 -g 參數,也可以看到 Reflog。

因為不小心使用 –hard 將 README.md 整個讓檔案消失了。這時候透過 reflog 可以找到你要返回的雜湊編號(紅框)。接著透過 reset --hard 救回不見的資料。

git reset 56f4621 --hard 
鼓勵持續創作,支持化讚為賞!透過下方的 Like 拍手👏,讓創作者獲得額外收入~
版主10在2020年首次開設YouTube頻道,嘗試拍攝程式教學。想要了解更多的朋友歡迎關注我的頻道,您的訂閱就是最大的支持~如果想學其他什麼內容也歡迎許願XD
https://www.youtube.com/channel/UCSNPCGvMYEV-yIXAVt3FA5A

Search

    Table of Contents