【Git】使用 git commit 修改提交(commit)的資訊或是內容

【Git】使用 git commit 修改提交(commit)的資訊或是內容

本篇重點

  • git commit --amend 修改最新一次提交的資訊或是內容
  • git commit --amend --author 修改提交的作者和信箱
  • git commit --amend --reset-author 重置提交的作者和信箱
  • git commit --amend -m 修改提交訊息
  • git commit --amend --no-editor 提交修改但不修改提交訊息
  • 每次修改提交 git commit --amend 都會變更提交 ID

在使用 Git 時,提交(commit)後才發現需要修改提交的資訊或內容。Git 提供了 git commit --amend 指令,能夠修改最新一次提交的內容或資訊,這樣能夠避免新增額外的提交,保持乾淨的提交歷史。

修改提交資訊

修改提交的作者和信箱

提交的作者和信箱是透過 git config 指令來設定的

git git
1
2
git config --global user.name "你的名稱"
git config --global user.email "你的信箱"

修改最新一次提交的作者名稱和信箱

方法一,git commit --amend --reset-author

設定正確的作者名稱和信箱資訊

git
1
2
git config --global user.name "forgetfulengineer"
git config --local user.email "thatforgetfulengineer@gmail.com"

重置作者名稱和信箱資訊

git
1
git commit --amend --reset-author

方法二,git commit --amend --author

git
1
2
3
4
git commit --amend --author="新作者名稱 <新信箱>"

# 修改最新一次提交的作者名稱和信箱
git commit --amend --author="forgetfulengineer <thatforgetfulengineer@gmail.com>"

健忘筆記

信箱的 <> 一定要加上

修改提交訊息

修改最新一次提交的訊息

git
1
git commit --amend -m "修改後的提交訊息"

範例

原本的提交訊息為「修正錯誤」,修改改成「修正登入功能錯誤」

git
1
git commit --amend -m "修正登入功能錯誤"

修改提交內容

使用 Git 時,我的提交習慣是根據遠端分支的狀態來決定處理方式。如果提交尚未推送到無法強制修改的遠端分支(例如 mastermain),我會保持每個提交精簡且整潔,避免有修正型的提交。例如,在設計網站的樣式並進行提交時,如果尚未更新到這些重要的遠端分支,仍處於自己的開發分支中,發現有需要修正的部分時,我不會新增一個修正提交,而是直接修正後再合併到原提交中,確保分支保持整潔。

但是當提交已經推送到無法強制修改的遠端分支時,為了避免影響該分支的穩定性,我會選擇透過提交一個新的修正分支,保留修改記錄的完整性。

新增內容到最新一次的提交

在最新一次提交中加入新的修改,並使用 git commit --amend --no-edit 更新提交,這樣會將新添加的內容更新到最新一次的提交中,並保留原提交訊息跟資訊(作者、信箱)

git
1
2
git add example.js
git commit --amend --no-edit

不更改提交訊息

如果不需要修改提交訊息,可以加上 --no-edit 選項,保持原提交訊息不變:

git
1
2
3
4
5
# 提交當前檔案
git commit --amend --no-edit

# 提交當前檔案並且修改作者名稱和信箱
git commit --amend --no-edit --author="forgetfulengineer <thatforgetfulengineer@gmail.com>"

結論

git commit --amend 是非常靈活的指令,用於修正最新一次提交的錯誤資訊或內容。然而需要注意的是,每次執行 git commit --amend 都會產生一個新的提交 ID,因此在使用時務必確認不會影響遠端分支的進度,尤其是在多人開發的專案中更需謹慎,以免造成分支衝突或其他協作問題。

延伸閱讀

【Git】使用 git commit 修改提交(commit)的資訊或是內容

https://forgetfulengineer.github.io/Other/Git/Using-git-commit-to-Modify-Commit-Data-or-Content/

作者

健忘工程師

發表於

2025-01-15

更新於

2025-01-15

許可協議


你可能也想看

【Git、Hexo】deploy github 檔名大小寫問題
【Hexo】多台電腦佈署 GitHub page 的問題
【Git】了解 git config 設定

評論

複製完成