首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Bitbucket Api删除Bitbucket LFS

使用Bitbucket Api删除Bitbucket LFS
EN

Stack Overflow用户
提问于 2021-08-14 10:56:16
回答 1查看 43关注 0票数 0

我想删除Bitbucket LFS上的一个文件,提供它的OID。我在文档中找不到如何做到这一点。这是可以做到的吗?怎么做?

EN

回答 1

Stack Overflow用户

发布于 2021-08-17 08:02:19

bitbucket api ( https://developer.atlassian.com/bitbucket/api/2/reference/resource/ )的目标不是直接支持标准的git命令,如接收新的提交、签出、推送等) bitbucket API更多地公开了GIT作为标准存储库没有涵盖的开箱即用的内容,如添加存储库、存储库元数据、拉取请求审批、评论、工作区、问题、管道、代码片段和团队管理。

为了处理标准的git命令和GIT-LFS相关命令,您可以尝试使用标准库,这些库可以提供对GIT存储库的编程访问权限,如org.eclipse.jgit ( https://www.eclipse.org/jgit/ )。有一些包专门用于git-lfs ( https://download.eclipse.org/jgit/site/5.12.0.202106070339-r/apidocs/org/eclipse/jgit/lfs/package-summary.html ),尽管只要我们知道文件路径,删除操作就不涉及git-lfs特定命令。

因此,您通常会在pom.xml文件或类似文件中包含以下内容:

代码语言:javascript
复制
<dependency>
  <groupId>org.eclipse.jgit</groupId>
  <artifactId>org.eclipse.jgit</artifactId>
  <version>5.12.0.202106070339-r</version>
</dependency>
<dependency><!-- this second one is not used in the snippet below -->
    <groupId>org.eclipse.jgit</groupId>
    <artifactId>org.eclipse.jgit.lfs</artifactId>
    <version>5.12.0.202106070339-r</version>
</dependency>

下面是Java中的一小段代码,展示了如何继续操作,前提是您不仅可以获得对象的OID,还可以获得文件路径。

代码语言:javascript
复制
import java.io.File;
import java.io.IOException;

import org.eclipse.jgit.api.CommitCommand;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.RmCommand;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.api.errors.NoFilepatternException;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.RepositoryBuilder;

public class App {
    public static void main( String[] args ) throws IOException, NoFilepatternException, GitAPIException {
        
        File file = new File("c:/users/admin/git/MyRepo");
        Repository repo = new RepositoryBuilder().setWorkTree(file).build();
        
        Git git = new Git(repo);
        
        RmCommand rmc = new RmCommand(repo);
        rmc.addFilepattern("large_image_file.bmp");
        rmc.call();
        
        CommitCommand cc = git.commit();
        cc.setMessage("deleting large files");
        cc.call();
        
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68782602

复制
相关文章

相似问题

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