有没有办法可以跟踪在Windows下在Git中使用的命令?我想查看在存储库中应用的所有命令。
我希望能够回顾一下命令历史记录,并找出引起问题的命令(如果发生的话)。
看到提交的历史记录是一回事,但是对于保留其他操作(例如创建分支或添加远程对象)的历史记录,是否可以跟踪?
Answers:
git将显示影响索引的提交更改,例如git rm。它不会存储您执行的所有git命令的日志。
但是,大量git命令以某种方式影响索引,例如创建新分支。这些更改将显示在提交历史记录中,您可以使用查看git log。
但是,有一些git无法跟踪的破坏性更改,例如git reset。
因此,要回答您的问题,git不会git在存储库中存储已执行命令的绝对历史记录。但是,通常可以通过提交历史记录来插补您执行的命令。
git history对于例如查看在特定克隆中执行了哪些命令很有用。
git reflog是你想要的。请参阅下面的答案。
git reflog实际上显示命令本身。而且,顺便说一句,shell只是推断git命令的一种更直接的方法,但是git repo可以被多个shell触及。最好问一下git使用了什么命令。
您可以使用git-reflog查看历史记录(此处为示例):
git reflog
git reflog 会显示您的HEAD跟随的所有位置,但实际上不会显示所有的git命令。不会移动头部的Git命令(例如git branch -D my_precious_branch)不会显示在那里。
git reflog --all吗?
git remote add foo bar。它不会出现在中git reflog --all,因为它不会修改HEAD指针。
git reflog不会显示类似git statusaso。的命令,带有或不带有--all参数。
您的命令记录可能在您的Shell历史记录中可用。
history
如果您不希望看到执行命令的列表,请将该列表导出到文件中。
history > path/to/file
您可以使用grep将导出的转储限制为仅显示其中带有“ git”的命令
history | grep "git " > path/to/file
历史记录可能包含这样格式化的行
518 git status -s
519 git commit -am "injects sriracha to all toppings, as required"
使用数字,您可以使用感叹号重新执行命令
$ !518
git status -s
我发现在Windows用户下我的“ home”文件夹中的git bash版本“ 2.24.0.windows.2”中,将存在一个名为“ .bash-history”的文件,该文件夹中没有文件扩展名。它仅在您退出bash之后创建。
这是我的工作流程:
如果您真的想要积分,我想您可以制作一个批处理文件来完成所有这些操作,但这对我来说已经足够了。希望它可以帮助某人。
.git/logs,则会看到每个分支指向的提交的历史记录。