标签: jgit

GitHub 和 GitLab 是否支持 git clone 的 --filter 参数?

我想使用git的partialClone功能。在这个答案中,我看到了git clone --filter=tree:none <repo>命令。

但是当试图在 github 上执行时,提示warning: filtering not recognized by server, ignoring. 这没用。

我想知道是不是GitHub网站不支持,还是我的设置有问题。

问了GitHub的反馈人员,没有得到技术人员的答复。

git github jgit gitlab rugged

8
推荐指数
1
解决办法
1278
查看次数

如何将Git服务器编写或打包为Java Servlet或Java webapp?

Git显然非常棒,各种客户端都可用,并且易于安装.

然而,为团队启动并运行Git服务器是一个挑战.

我有点惊讶的是,还没有一个易于部署的Java-Git应用服务器或webapp.看起来Gitosis,Gitolite等是在其他堆栈上运行的一些选项,但如果您已经在运行Java堆栈,那么部署Java servlet或webapp最简单.

沿着这些方向,我想知道如何编写Java'Git Server'webapp?

JGit可以在多长时间内为您提供简单的实现?将JGit打包为Web应用程序以便能够推送/拉出它以及轻松创建新的回购站需要做些什么?

java git web-applications gitosis jgit

7
推荐指数
2
解决办法
3912
查看次数

JGit:连接到远程存储库

我搜索了Google,论坛和JGit用户指南,但无法找到如何使用API​​连接到远程存储库.任何人都有一个例子,或只是一个如何做到这一点的想法?

谢谢你的帮助.

remote-access jgit

7
推荐指数
1
解决办法
4301
查看次数

JGIT验证存储库是否有效

有没有一种方法可以杀死中间的克隆操作?我将使用克隆来验证存储库?有没有其他方法来测试远程url/repository是否有效?

java validation jgit

7
推荐指数
2
解决办法
5229
查看次数

列出一个git远程仓库的分支而不克隆它

我想知道怎么可能用jgit列出远程Git仓库的所有分支但没有克隆它.

在浏览jgit的javadoc时,我发现了ListBranchCommand,但它似乎只适用于已经打开的Repository对象.但我无法找到如何通过HTTP创建Repository对象而不在本地克隆它.

可能吗 ?谢谢

java jgit

7
推荐指数
2
解决办法
2369
查看次数

使用 JGit 的 SSH 身份验证来安全地访问 Git 存储库/身份验证失败

我在 scala 中使用 JGit 访问远程 Git 存储库,并且需要使用 SSH 进行身份验证。JGit 使用 JSch 提供安全访问。

我遵循了本教程:http://www.codeaffine.com/2014/12/09/jgit-authentication/

但是,我总是出现com.jcraft.jsch.JSchException:身份验证失败

我的方法是:

def sshCloneRemoteRepository() = {

// 1 / Override SSH configuration with JschConfigSessionFactory
val sshSessionFactory: SshSessionFactory  = new JschConfigSessionFactory() {

  override protected def createDefaultJSch(fs: FS): JSch = {
    val defaultJSch = super.createDefaultJSch(fs)
    defaultJSch.removeAllIdentity()
    defaultJSch.addIdentity(new File("/home/xw/.ssh/id_rsa").getAbsolutePath)
    defaultJSch.setKnownHosts("/home/xw/.ssh/known_hosts")
    val configRepository:ConfigRepository = com.jcraft.jsch.OpenSSHConfig.parseFile("/home/xw/.ssh/config")
    defaultJSch.setConfigRepository(configRepository)
    defaultJSch
  }

  override protected def configure(host:OpenSshConfig.Host, session:Session ) {
    // This still checks existing host keys and will disable "unsafe" authentication mechanisms
    // …
Run Code Online (Sandbox Code Playgroud)

git ssh scala jsch jgit

7
推荐指数
1
解决办法
1万
查看次数

关闭JGit clone命令的SSL验证

我试图通过它克隆一个Git存储库CloneCommand.有了这段代码

`Git.cloneRepository().setDirectory(new File(path)).setURI(url).call();`
Run Code Online (Sandbox Code Playgroud)

远程存储库位于使用自签名证书的GitBlit实例上.由于这些自签名证书,我在克隆的获取部分执行时得到以下异常:

Caused by: java.security.cert.CertificateException: No name matching <hostName> found
    at sun.security.util.HostnameChecker.matchDNS(HostnameChecker.java:221)
    at sun.security.util.HostnameChecker.match(HostnameChecker.java:95)
Run Code Online (Sandbox Code Playgroud)

虽然我可以创建一个新的TrustManager,但是注册一个虚拟对象HostnameVerifierSSLContext使用这个虚拟对象创建和初始化TrustManager.克隆完成后,还原所有这些.

但是,这意味着在同一时间启动的任何其他SSL连接都会将它们暴露给不安全的连接.

在已经克隆的仓库中,您可以将http.sslVerify设置为false,并且JGit可以正常工作.

是否有一种更清晰的方式,我可以告诉JGit将此http.sslVerify设置为false以进行克隆操作,就像我可以为已经克隆的回购做的那样.

jgit

7
推荐指数
2
解决办法
4849
查看次数

Java (JGIT) Files.delete() 删除文件失败,但 file.delete() 成功

我正在使用 jgit (version 4.8.0.201706111038-r) 将git repo 克隆到临时目录中,并添加关闭挂钩以在终止后删除临时目录。但是,关闭挂钩无法从.git子目录中删除某些文件(尽管关闭了 jgit 要求的 Git 对象)。

有趣的是,只有当我使用 Path API ( Files.delete(<PATH>)) 时删除才会失败,但如果我使用旧的file.delete().

这是一个最小的独立示例,其唯一依赖项是 jgit 4.8.0.201706111038-r:

public static void main(String... args) throws Exception {
    String gitRepo = "https://github.com/netgloo/spring-boot-samples.git";
    Path localDir = Files.createTempDirectory(null);

    // Clone repo
    Git git = Git.cloneRepository().setURI(gitRepo).setBranch("master").setDirectory(localDir.toFile()).call();

    // Print some stuff to make sure that the git repo actually works
    for (RevCommit c : git.log().call()) {
        System.out.println(c);
    }

    git.getRepository().close(); // Close all the things!
    git.close(); // Close all …
Run Code Online (Sandbox Code Playgroud)

java filesystems jgit

7
推荐指数
1
解决办法
952
查看次数

如何在不知道 JGit 本地是否存在的情况下签出远程分支?

使用普通git checkout命令完全按照我的预期工作。以下是我尝试使用同一段代码允许的用例:

1)git checkout branchname其中branchname不存在于本地,但远程确实上

2) git checkout branchname,其中branchname已在本地存在

3) git checkout commitid

对于上下文,存储库之前已按如下方式克隆:

repo = Git.cloneRepository()
    .setCloneSubmodules(true)
    .setURI(repoUrl)
    .setDirectory(createTempDir())
    .setCloneAllBranches(true)
    .call();
Run Code Online (Sandbox Code Playgroud)

标准的 JGit checkout 命令不会在本地自动创建分支。以下代码适用于场景 2 和 3:

repo.checkout()
      .setName(branchOrCommitId)
      .call();
Run Code Online (Sandbox Code Playgroud)

通过创建新分支的修正,它仅适用于场景 1:

repo.checkout()
      .setCreateBranch(true)
      .setName(branchOrCommitId)
      .call();
Run Code Online (Sandbox Code Playgroud)

考虑到标准 Git CLI 已经在我正在寻找的命令中提供了自动功能,我可以使用这个问题的巧妙解决方案吗?

java git git-checkout jgit

7
推荐指数
1
解决办法
2416
查看次数

如何使用 JGit 查找提交的分支?

我需要使用 JGit 获取与特定提交关联的分支名称。我使用 JGit 获取存储库的提交 SHA 的完整列表,现在我需要知道它所属的分支的名称。

如果有人能让我知道如何实现这一目标,我将不胜感激。

java git jgit

7
推荐指数
1
解决办法
3402
查看次数