首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在VSCode扩展中从Git获取修改后的文件

如何在VSCode扩展中从Git获取修改后的文件
EN

Stack Overflow用户
提问于 2021-06-15 05:18:58
回答 2查看 53关注 0票数 0

作为练习,我正在尝试创建一个类似于现有VScode源代码管理选项卡的VScode扩展。

与下面的截图类似,我希望获得当前项目中所有已修改文件的列表(运行"git status“时显示的文件列表),然后在树视图中显示它们。

如何使用Typescript和VSCode API查询git以获得所有修改过的文件的列表?

EN

回答 2

Stack Overflow用户

发布于 2021-06-15 19:53:52

这里,这可能会对source-control-sample 有所帮助。另外,请查看vscode-extension-samples,它们在进行vscode扩展时确实很有帮助

票数 0
EN

Stack Overflow用户

发布于 2021-06-18 20:15:59

要在VS Code工作空间中访问Git Repos,您可以利用与VS Code捆绑在一起的Git扩展提供的API。

这是一个示例extension.ts文件,用于将第一个存储库的更改数组转储到您的工作区中:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67977324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档