History or log of commands executed in Git

有没有一种方法可以跟踪我在 Windows 下的 Git 中使用的命令?我想查看我在存储库中应用的所有命令。

我希望能够回顾命令历史,找出导致问题发生的命令。

Seeing the history of commits would be one thing, but for keeping a history of other actions such as creating a branch or adding a remote, are these tracked?

168755 次浏览

Git 将显示影响索引的提交更改,例如 git rm。它不存储您执行的所有 git 命令的日志。

但是,大量 git 命令会以 一些的方式影响索引,例如创建一个新分支。这些更改将显示在提交历史中,您可以使用 git log查看该历史记录。

然而,有一些破坏性的变化是 git 无法跟踪的,比如 git reset

因此,为了回答您的问题,git 并不存储您在存储库中执行的 git命令的绝对历史记录。但是,通过提交历史记录常常可以插入您已经执行的命令。

你可以看到 Git-reflog(举个例子)的历史:

git reflog

如果你使用 Windows PowerShell,你可以输入“ git”然后按 F8。继续按 F8循环执行所有 git 命令。

或者,如果你用 Cygwin 你也可以用 ^ R 做同样的事情。

您的命令日志可能在 shell 历史记录中可用。

history

如果看到已执行命令的列表并不适合您,那么将该列表导出到一个文件中。

history > path/to/file

您可以使用 grep 通过管道将导出的转储限制为只显示包含“ git”的命令

history | grep "git " > path/to/file

The history may contain lines formatted as such

518  git status -s
519  git commit -am "injects sriracha to all toppings, as required"

使用这个数字,你可以用一个叹号重新执行命令

$ !518
git status -s

如果您正在使用 CentOS 或其他 Linux 风格,那么只需在提示符下执行 Ctrl + R并键入 git

If you keep hitting Ctrl+R this will do a reverse search through your history for commands that start with git

在终端中键入 history。 严格来说不是,但我觉得这是你想要的。

我在我的 git bash 版本“2.24.0”中发现了这一点。在我的“ home”文件夹下的 windows 用户(C:\Users\<yourusername>\) ,会有一个名为“。Bash _ history”,该文件夹中没有文件扩展名。只有在从 bash 退出后才会创建。

以下是我的工作流程:

  1. 在退出 bash 类型“ history >> history.txt”之前[ ENTER ]
  2. 退出 bash 提示符
  3. 按住 Win + R 打开 Run 命令框
  4. enter shell:profile
  5. 打开“ history. txt”以确认添加了我的文本
  6. 在一个新的行上按[ F5]以输入时间戳
  7. 保存并关闭历史文本文件
  8. Delete the ".bash_history" file so the next session will create a new history

如果你真的想要积分,我想你可以做一个批处理文件来做这一切,但这对我来说已经足够好了。希望能帮到别人。