作为练习,我正在尝试创建一个类似于现有VScode源代码管理选项卡的VScode扩展。
与下面的截图类似,我希望获得当前项目中所有已修改文件的列表(运行"git status“时显示的文件列表),然后在树视图中显示它们。
如何使用Typescript和VSCode API查询git以获得所有修改过的文件的列表?

发布于 2021-06-15 19:53:52
这里,这可能会对source-control-sample 有所帮助。另外,请查看vscode-extension-samples,它们在进行vscode扩展时确实很有帮助
发布于 2021-06-18 20:15:59
要在VS Code工作空间中访问Git Repos,您可以利用与VS Code捆绑在一起的Git扩展提供的API。
这是一个示例extension.ts文件,用于将第一个存储库的更改数组转储到您的工作区中:
import * as vscode from "vscode";
import { GitExtension } from "./git";
export async function activate(context: vscode.ExtensionContext) {
// Run code when command is triggered. Requires to define a command in package.json...
// This is one way to make sure, that all other extensions -- especially the Git extension -- have been activated, too.
// Otherwise getExtension() might return `undefined`.
let disposable = vscode.commands.registerCommand("myExtension.myCommandId", async () => {
//Get access to API provided by Git extension that is always part of VS Code
const gitExtension = vscode.extensions.getExtension<GitExtension>('vscode.git')!.exports;
const git = gitExtension.getAPI(1);
//Get list of repositories available in current VS Code workspace
const repos = git.repositories;
//Get all changes for first repository in list
const changes = await repos[0].diffWithHEAD();
//Print out array of changes
console.info(changes);
});
context.subscriptions.push(disposable);
}
export function deactivate() {}你可以在这篇文章中找到其他的例子:How to access the api for git in visual studio code
https://stackoverflow.com/questions/67977324
复制相似问题