Maven with Git:从任意提交而不是 HEAD 中释放



我想对过去提交的工件进行mvn release;有人在同一个 SNAPSHOT 中添加了几个提交,我希望这些提交被排除并移动到下一个版本。给定以下git log输出:

commit ea05
Author: Y
commit 921d
Author: Y
commit 530c
Author: Y
commit 64e9
Author: X

我希望 maven 使用64e9而不是ea05

我尝试做git co 64e9(分离的 HEAD),mvn release:prepare(工作),然后mvn release:perform但它挂起产生以下输出:

[INFO] Building ABC
[INFO]    task-segment: [release:perform] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [release:perform {execution: default-cli}]
[INFO] Checking out the project to perform the release ...
[INFO] Executing: /bin/sh -c cd /home/ABC/target && git clone ssh://repo/ABC.git /home/ABC/target/checkout
[INFO] Working directory: /home/ABC/target
[INFO] Executing: /bin/sh -c cd /home/ABC/target/checkout && git pull ssh://repo/ABC.git tag ABC-1.6
[INFO] Working directory: /home/ABC/target/checkout
(...hanged)

@khmarbaise 感谢您的启发,这是我最终解决问题的方式:

  1. 将当前状态存储在单独的分支中
  2. 将主节点git reset --hard到所需的提交
  3. git push --force origin以避免"您的分支在 N 个提交中落后于'源/主',并且可以快进。
  4. 使用 Maven 的发布插件发布
  5. 将"隐藏"在其他分支中的提交重新应用于下一个开发版本。

最新更新