在 Visual Studio 代码中,有没有办法从源代码管理面板和终端 window 获取所有 git 命令的合并 git 日志?

In Visual Studio Code, is there a way to get a merged git log of all git commands from both Source Control pane and Terminal window?

这是

的衍生产品

问题是如何获得源代码管理窗格的合并日志(link 已经解释过)与终端 window 的日志。充其量是命令+它们的输出,最重要的是命令的顺序。

我希望 vscode 提供现成的合并日志。相反,到目前为止,似乎还需要手动工作。

源代码管理窗格终端视图唯一自动合并的日志位于vscode“开发人员工具”>“控制台”中,需要注意的是终端命令不直接记录:你只能从某个结构中看到当时有一个终端命令,然后你至少可以在你的终端历史记录中手动查找它一定是什么 - 棘手,但如果你迫切需要,并非不可能记录或重建确切的命令序列。您仍然需要在此处手动将终端命令分配到开发人员工具控制台日志中的正确位置。

还有其他日志不包括两者,只是源代码管理窗格或终端视图。


更新,摘自 History or log of commands executed in Git:

的评论

A hackish approach to record everything would be to replace the git binary with a shellscript (or whatever) that logs all arguments and then calls the original binary forwarding the same arguments.

在这种情况下,这个“原始二进制文件”将是 vscode 的 git 菜单,这样 vscode 的内部 git 命令你 select 在菜单中但未登录到终端的除了终端命令外也会被记录。

为此,您需要能够从终端控制 vscode 的内部 git 菜单,这可能需要大量的界面工作,而且不现实。 (我对这个问题的理解可能是错误的,我只是猜测。)


最简单的手动合并日志显然是手动合并Git输出window(见)手动从终端简单拷贝到一起命令+输出。

为了完整起见,还有其他日志不增加任何价值:git reflog、git.txt 和终端 window 中的 history 命令。

这里有一个详细的文档,可能会被忽略,因为手动合并 git 日志和终端日志应该是最简单的方法。

####

vscode 开发者工具控制台:

  • 运行 "C:\Users\USER\AppData\Local\Programs\Microsoft VS Code\Code.exe" --verbose or if it is in your Path just run code --verbose` 来自命令行。

  • 代码 select Help | Toggle Developer Tools 和 select Console

  • 找出您需要的过滤器,例如第一次测试的文件名,或者如果您只想查看源代码管理窗格命令,请过滤“CommandService”。你需要玩弄才能发现,也许你只是复制整个日志并稍后过滤它。

示例:在“git -Watcher”上放置过滤器,搜索“init”得到:

TRACE telemetry/views.welcomeAction {viewId: "workbench.scm", uri:

"command:git.init?%5Btrue%5D"}

TRACE CommandService#executeCommand

git.init

vscode使用git.stage代替git.add,这是同义词,见

搜索项目文件会在 git.commit 之后找到“DecorationsService”。

终端命令不能直接看到,但是你从终端里面的“打字信息”里看到终端里面有输入:

TRACE IPty#write [number] characters

随后是 4 个“文件观察器”操作(使用 git status 测试)。

虽然您看不到命令​​,但即使在源代码管理面板和终端之间切换,您也可以重建它们的顺序 window。

请注意,与保存的 git reflog 相比,这只是一个会话日志。而且它不包括任何输出。

####

git 引用日志:

对于全局解决方案,git reflog 只有 commit/checkout/merge… 日志并且不显示确切的命令/输出,而是摘要,这是从 [=34= 借来的]

再次摘自 History or log of commands executed in Git 的评论:

The reflog doc says: "record when the tips of branches and other references were updated in the local repository".

####

git.txt:

vscode 在 Windows 上提供 git 日志,这是 C:\Users\USER\AppData\Roaming\Code\logs\[some hash]\git.txt

有关更多详细信息和其他位置,请参阅 Where are Visual Studio Code log files?

开头像

telemetry/git.command {"properties":{"command":"git.init" …

####

终端历史记录:

对于命令的终端历史记录,在vscode终端中使用history,这是从History or log of commands executed in Git

再次借用的

与保存的 git reflog.

相比,这只是一个会话日志