1. Learn center
  2. Software Development
  3. Guides
  4. Git tutorial
  5. Git 的指令和設定
  6. Git 提交歷史紀錄指令
Git

Project and code management together.

Try it free

Git 提交歷史紀錄指令


修改之前的提交和訊息

$ git commit --amend

新增--amend選項來覆蓋您正在處理的分支的最新提交。

當索引中沒有檔案時,您可以透過新增--amend選項重新提交之前的提交,系統將提示您編輯現有的提交訊息。

請參考:

修改並移動過去的提交和訊息

$ git rebase -i <commit>

新增提交哈希,將列出直到最新提交的所有提交的清單。找到您要修改的提交,並將該行從pick更改為edit,然後儲存並退出。

接下來,新增--amend選項來提交。將顯示用於新增訊息的畫面。修改訊息。

$ git commit --amend

最後,新增--continue選項來運行 rebase。

$ git rebase --continue

請參考:

退出變基

$ git rebase --abort

透過新增--abort選項,您可以退出變基操作。

顯示參考日誌

$ git reflog

reflog 指令允許您查看 HEAD 過去用來指示的提交清單。

08084a5 HEAD@{0}: commit: append description of the pull command
  99daed2 HEAD@{1}: commit: append description of the commit command
  48eec1d HEAD@{2}: checkout: moving from main to issue1
  326fc9f HEAD@{3}: commit: append description of the add command
  48eec1d HEAD@{4}: commit (initial): first commit

將顯示由 rebase 收集的已刪除和成功的提交。

顯示分支提示的參考日誌

$ git reflog <ref>

這將顯示每次提示的提交清單 <ref> 已經改變,類似於下面。

445e0ae issue1@{0}: commit (merge): Merge branch 'main' into issue1
1c904bd issue1@{1}: commit (amend): modify description of the pull command
08084a5 issue1@{2}: commit: append description of the pull command
99daed2 issue1@{3}: commit: append description of the commit command
48eec1d issue1@{4}: branch: Created from 48eec1ddf73a7fb508ef664efd6b3d873631742f

我們可以看到已刪除和現有提交的 rebase 歷史紀錄。

移除以前的提交

$ git reset --hard HEAD~

請參考:

重設變基

$ git reset --hard <commit>

使用 reflog 指令在變基之前檢視提交。確定提交哈希值,或者在變基前發生提交的[HEAD@{number}]的值。在此範例中,71bdfbdHEAD@{4} 是提交的引用。

a51f8d2 HEAD@{0}: rebase -i (finish): returning to refs/heads/dev
  a51f8d2 HEAD@{1}: rebase -i (squash): update 1
  3a273e1 HEAD@{2}: rebase -i (squash): updating HEAD
  f55ef69 HEAD@{3}: checkout: moving from dev to f55ef69
  71bdfbd HEAD@{4}: commit: update 2
  f55ef69 HEAD@{5}: commit (amend): update 1

在執行重設指令時,將哈希值(71bdfbdHEAD@{4})新增到<commit>

分支的頭的位置現在將移動到執行變基之前的提交。現在分支的狀態將與執行變基之前的狀態相同。

取消之前的重設

$ git reset --hard ORIG_HEAD

ORIG_HEAD 指的是重設發生之前的提交。您可以使用 reset to ORIG_HEAD 恢復之前的重設。

從另一個分支複製提交

$ git cherry-pick "<commit>"

由其哈希標識的提交將被複製到目前分支。

請參考:

搜尋提交訊息

$ git log --grep "<pattern>"

顯示用 <pattern> 指定的文本的提交。

Subscribe to our newsletter

Learn with Nulab to bring your best ideas to life