java - 使用 JGit 将子模块添加到非空路径

标签 java git git-submodules jgit

我正在尝试使用 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/

相关文章:

git - 具有不同提交历史的公共(public)/私有(private) git repos

node.js - 将 Node 模块 checkin Git 中以获取新分支

xcode - 使用 Mavericks Server 的主机 key 验证失败 Xcode

git - 从版本控制窗口 stash git 子模块更改

java - 将 java 字符串处理为 Android Studio+NDK 的原生 C/C++

java - 是否有基于 selenium 的 java api 构建器?

java - 我可以在具有多个实例的类上使用 Random 方法吗?

java - MongoDB 等同于使用 Java Driver 的 SQL 查询?

Git: merge 结构非常不同的分支

git - 发现可疑 https ://github. com/Homebrew/brew git origin remote