Skip to main content
  1. Learn
  2. Software Development
  3. Guides
  4. Git tutorial
  5. Git 命令和设置
  6. Git 提交历史记录命令
GuidesSoftware DevelopmentBacklog
Git

Project and code management together.

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