【发布时间】:2015-01-29 06:35:00
【问题描述】:
我正在尝试将一个 shell 脚本移植到 Java,其中包含一些我主要设法在 JGit API 中找到的 Git 命令。但是,我还没有设法找到 remote 或 am 命令,这是因为它们不存在还是我只是在错误的地方寻找它们。如果它们不存在,还有其他方法可以使用它们吗?
【问题讨论】:
标签: git jgit git-remote git-am
我正在尝试将一个 shell 脚本移植到 Java,其中包含一些我主要设法在 JGit API 中找到的 Git 命令。但是,我还没有设法找到 remote 或 am 命令,这是因为它们不存在还是我只是在错误的地方寻找它们。如果它们不存在,还有其他方法可以使用它们吗?
【问题讨论】:
标签: git jgit git-remote git-am
在 JGit 中,git remote 和 am 没有现成的对应物,但应该可以通过合理的努力来实现它们(其中的一个子集)。
git remote 的那些查询或操作配置文件的子命令可以通过Repository.getConfig() 直接访问存储库配置来模拟。
要像git remote prune 那样清理陈旧的远程跟踪分支,您可以使用LsRemoteCommand 获取现有远程分支的列表,并从本地配置中删除与该列表不匹配的远程。
替换git am 可能需要更多的努力。有一个 ApplyCommand 来应用来自给定输入流的补丁以及低级 Patch 类来解析差异。剩下的就是解析邮箱文件并根据包含的差异和元数据(消息、作者等)生成提交。
【讨论】: