我正在尝试使用 JGit API 类 SubmoduleAddCommand 将子模块添加到非空文件夹,这是我的代码:
SubmoduleAddCommand submoduleAddCommand = new SubmoduleAddCommand(repository);
submoduleAddCommand.setPath(path);
submoduleAddCommand.setName(name);
submoduleAddCommand.setURI(uri);
submoduleAddCommand.call().close();
repository.close();
目标文件夹包含:Folder1、Folder2...等等,前面的文件夹都不是子模块,但不得删除它们。我的目标是添加子模块并将其与非子模块文件夹一起克隆到目标文件夹。这会导致抛出异常:
org.eclipse.jgit.api.errors.JGitInternalException: Destination path "Target_Submodule" already exists and is not an empty directory
并且子模块既不会添加到 .gitmodules
文件中,也不会克隆到目标文件夹中。
有没有办法将此子模块添加到非空目标文件夹和.gitmodules
文件中?
最佳答案
Git 不允许将子模块添加到非空目录中。
SubmoduleAddCommand
将克隆指定的存储库并将其 check out 到目标路径中。并且克隆存储库要求目标路径为空。
如果目标目录中存在添加模块时也需要创建的文件,则克隆到非空目录可能会导致各种麻烦。
关于java - 使用 JGit 将子模块添加到非空路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60285680/