JGit-在主分支中重新排序/删除提交,然后再推送到上游

时间:2019-01-07 10:16:21

标签: java git jgit git-remote git-rewrite-history

我目前正在设计一个应用程序,该应用程序使用GIT存储库作为一组属性文件的持久性单元,该应用程序将测试存储库中的属性文件的维护工作发布(推送)到生产存储库之前

该应用程序使用JGit与Git存储库集成。

这里的复杂之处在于,用户必须能够在将release推送到生产环境之前从测试存储库中添加和删除提交,每个提交都映射到单个属性文件中的更改。所有未推送到远程生产存储库的提交都必须保留un-pushed

因此,请想象下一种情况: 测试仓库有4次提交 c1-c2-c3-c4

但是用户选择仅推送提交c1c4

推送后的预期生产提交应该为c1-c4,但是没有推送到生产仓库的提交应该保留在测试仓库中。

我已经看过一些不同的本机GIT解决方案,但无法真正通过JGIT实现预期的输出,下面是我研究过的一些解决方案:

  • JGit Rebase:JGIT不支持针对提交的DROP操作,EDIT也无效
  • JGit Cherry Pick:为测试值创建一个单独的分支,然后将要发布到生产中的值cherrypick到母版上。但是如何处理留在单独分支中的提交?
  • 还尝试了JGit重置,JGit还原等。但是,本机git操作都不能满足所有项目要求。

我想我的问题是,有谁知道JGit支持的将实现预期功能的本地git操作吗?

我发现几乎没有关于JGit的文档,检查JGit api的最佳位置是查看these examples。如果还有更多我找不到的文档,我也希望获得一个链接。

0 个答案:

没有答案