如何从文件转换为 git 路径?

How to convert from File to git path?

我正在使用 jgit、log() 命令,addPath(String path) 要求我输入 git 兼容路径,即 [=13= 这样的相对路径].java.但是我得到的是一个 File 对象,它的绝对路径类似于:c:\hello\irrelevant\myproject\src\java\com\foo\test.java。 如何从这个转换为 git 路径? jgit 本身有一些方便的功能吗?我找不到....

您可以使用Path::relativize获取要添加的文件和工作目录之间的相对路径。

例如:

File workDir = git.getWorkTree(); // e.g. "/path/to/workdir"
File file = new File("/path/to/workdir/foo.txt");

Path relativePath = workDir.toPath().relativize(file.toPath());

assertEquals("foo.txt", relativePath.toString());