Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JGit显示远程更改,如git diff——名称状态主源/主_Java_Git_Jgit - Fatal编程技术网

Java JGit显示远程更改,如git diff——名称状态主源/主

Java JGit显示远程更改,如git diff——名称状态主源/主,java,git,jgit,Java,Git,Jgit,我正在试着用它。 它的工作非常好,但在进行拉取之前,我还没有发现如何在远程git上显示更改。 在终端中,我通过以下步骤解决了问题: git fetch git diff——名称状态主机原点/主机 如何使用JGit获取远程更改?有人有主意吗 我认为线程可以帮助,但我不知道如何获取远程头。我找到了如何获取远程头(FETCH\u HEAD)。 现在我的代码如下: git.fetch().call(); Repository repo = git.getRepository(); Objec

我正在试着用它。 它的工作非常好,但在进行拉取之前,我还没有发现如何在远程git上显示更改。 在终端中,我通过以下步骤解决了问题:

  • git fetch

  • git diff——名称状态主机原点/主机

  • 如何使用JGit获取远程更改?有人有主意吗


    我认为线程可以帮助,但我不知道如何获取远程头。

    我找到了如何获取远程头(FETCH\u HEAD)。 现在我的代码如下:

    git.fetch().call();
    Repository repo = git.getRepository();      
    ObjectId fetchHead = repo.resolve("FETCH_HEAD^{tree}");
    ObjectId head = repo.resolve("HEAD^{tree}");
    
    ObjectReader reader = repo.newObjectReader();
    CanonicalTreeParser oldTreeIter = new CanonicalTreeParser();
    oldTreeIter.reset(reader, head);
    CanonicalTreeParser newTreeIter = new CanonicalTreeParser();
    newTreeIter.reset(reader, fetchHead);
    List<DiffEntry> diffs= git.diff().setShowNameAndStatusOnly(true)
                            .setNewTree(newTreeIter)
                            .setOldTree(oldTreeIter)
                            .call();
    for(DiffEntry entry : diffs) {
        System.out.println(entry.toString());
    }
    
    git.fetch().call();
    Repository repo=git.getRepository();
    ObjectId fetchHead=repo.resolve(“FETCH_HEAD^{tree}”);
    ObjectId head=repo.resolve(“head^{tree}”);
    ObjectReader=repo.newObjectReader();
    CanonicalTreeParser OldTreeItemer=新CanonicalTreeParser();
    重置(读卡器、磁头);
    CanonicalTreeParser newtreiter=新CanonicalTreeParser();
    复位(读卡器、取头);
    List diff=git.diff().setShowNameAndStatusOnly(true)
    .setNewTree(newtreiter)
    .setOldTree(oldTreeIter)
    .call();
    对于(差异条目:差异){
    System.out.println(entry.toString());
    }
    
    它向我显示了我想要的远程更改,但它不正确。如果我在工作副本中创建一个新文件并提交该文件(无需推送),那么diff将显示新文件已在FETCH_头中删除。 如何筛选此错误的删除消息