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