java - 如何使用 Java 以编程方式在 GitHub 存储库中移动文件?

标签 java git jgit

我正在使用 org.eclipse.egit.github.core 库(版本 4.9.0.201710071750-r),目前,我可以在一次提交中推送文件列表。

例如,我有 packageA/myfile.xml 并希望将其移动到 packageB/myfile.xml

我需要在一次提交中完成它,并且可以是许多操作之一(可以是其他新文件、修改的文件)。

最佳答案

使用 Java 以编程方式操作 Git 存储库的首选库是 JGit,它是 Git 的纯 Java 实现。

根据您的问题,您会

  1. 通过 Java NIO/File API 移动有问题的文件

  2. 使用 JGit RmCommand 删除旧文件 (packageA/myfile.xml)

  3. 将移动的文件 (packageB/myfile.xml) 添加到索引 JGit's AddCommand

  4. 提交移动的(实际删除然后(重新)添加)文件

您提到的 org.eclipse.egit.github.core 插件/库旨在与 GitHub 的 REST API 进行交互。它用作 GitHub Eclipse 集成的基础,用于访问和查询托管在 GitHub review pul 请求和类似内容上的 Git 存储库。

关于java - 如何使用 Java 以编程方式在 GitHub 存储库中移动文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47838510/

相关文章:

java - 列出自使用 JGit 从 master 创建分支以来的所有提交

java - 比较两个字符串并突出显示发现的不匹配之处

java - 使用java解析HTML中的数字

git - 自动添加 git 子模块 (.gitmodules)

linux - 如何针对 Kerberos 跳过 Git 的密码输入?

java - JGit RevWalk.parseTag 不释放对包文件的锁定

git - 如何识别 JGit 中的文件夹重命名

java - 请求中的空用户代理会在旧版 API 中创建 NPE

java - readObject() 方法不打印对象

git - merge 、更新和 pull Git 分支而不使用 checkout