git commit –amend 使用詳解

Git 是目前世界上最先進的分散式版本控制系統之一,使用廣泛。使用 Git 的過程中,我們經常會遇到修改提交歷史的需求,比如:我們提交了一個不夠完善或者有錯誤的代碼,需要對其進行修改和完善,此時就需要用到 git commit –amend 命令。

一、修復上一次提交

Git commit –amend 命令可以用來修復上一次的提交,我們可以立即將上一次提交的內容修改後進行重新提交。

git commit --amend

執行該命令後,Git 會進入 Vim 編輯器,並將當前代碼庫的提交信息填入到 Vim 編輯器中,輸入新的提交信息後,執行 :wq 命令即可完成對上一次提交的修改。如果不做任何修改,直接使用 :wq 命令保存的話,相當於什麼也沒做。

二、修改最近一次提交的文件

當我們的代碼庫歷史提交記錄中不止一個提交時,git commit –amend 命令還可以用來修改最近一次提交的文件。

# 修改文件,並將其添加到暫存區
git add file_name

# 執行修改上一次提交
git commit --amend --no-edit

這樣可以達到修改提交信息的目的,而不需要輸入修改指令 Vim 命令。

三、在本地合併多個 commit 信息

當我們為一個特性分支進行多次提交,合併後的提交歷史看起來可能會比較亂,此時可以使用 git commit –amend 命令將多個提交整合到一起。

# 合併當前特性分支前五次提交,並且不修改任何提交信息
git rebase -i HEAD~5

# 將第二次提交至第五次提交 pick 改為 squash
# 保存並退出 Vim

# 修改合併後的提交信息
git commit --amend

# 刪除多餘的提交信息
git rebase --continue

這樣我們就整合了前五次提交記錄,並將其合併為一條提交記錄。使用 git show 命令查看提交記錄詳情時可以看到多個提交記錄信息被整合到了一起。

四、注意事項

1、僅在本地分支使用

修改歷史是 Git 遠程倉庫的重要組成部分,但是修改歷史可能會破壞 Git 倉庫的完整性和可靠性,所以我們不應該修改與項目合作者分享或者已經 push 到 Git 伺服器上的任何提交記錄。因此,git commit –amend 命令僅在本地分支使用,不應該用於與他人協作的多人開發。

2、不要濫用

由於 git commit –amend 命令會改變提交歷史,因此我們不應該濫用該命令。合理使用該命令可以使我們的提交歷史更加清晰和可讀,而濫用該命令會導致提交歷史雜亂無章,使我們難以追溯提交歷史。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/287018.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-23 13:06
下一篇 2024-12-23 13:06

相關推薦

  • Git secbit:一種新型的安全Git版本

    Git secbit是一種新型的安全Git版本,它在保持Git原有功能的同時,針對Git存在的安全漏洞做出了很大的改進。下面我們將從多個方面對Git secbit做詳細地闡述。 一…

    編程 2025-04-29
  • 如何優化 Git 性能和重構

    本文將提供一些有用的提示和技巧來優化 Git 性能並重構代碼。Git 是一個非常流行的版本控制系統,但是在處理大型代碼倉庫時可能會有一些性能問題。如果你正在處理這樣的問題,本文將會…

    編程 2025-04-29
  • Idea2022變更Git地址

    本文將從以下幾個方面對Idea2022變更Git地址進行詳細闡述: 一、GitHub上修改Git倉庫地址 1、登錄GitHub,找到需要修改的Git倉庫 2、在代碼頁面點擊右上角的…

    編程 2025-04-28
  • 通過提交信息搜索-使用git

    本篇文章重點講解如何使用git通過提交信息來搜索。我們將從多個方面介紹如何使用git來搜索提交信息,並提供相應的代碼示例以供參考。 一、搜索方式 Git提供了三種搜索方式,分別為:…

    編程 2025-04-27
  • Java項目Git發布流程規範

    本文旨在介紹Java項目在使用Git進行發布時的流程規範。Git作為一個版本控制工具,其功能十分強大,但是對於Java項目進行發布時,需要我們根據標準化的流程規範來執行操作,以確保…

    編程 2025-04-27
  • 使用Pycharm從Git上Clone項目的步驟

    在本篇文章中,我們將會詳細介紹如何使用Pycharm工具從Git上Clone項目。 一、打開Pycharm並進入Welcome界面 首先,我們需要打開Pycharm工具,並進入We…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分散式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25

發表回復

登錄後才能評論