Pet*_*etz 7 git maven-release-plugin
尝试在之前成功发布的maven项目上执行发布.
当我执行mvn release:prepare时,系统会提示我发布标记和新快照标记以及项目构建.
但当它试图推向遥控器时,我明白了
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project NeuralAnalysis: Unable to tag SCM
[ERROR] Provider message:
[ERROR] The git-push command failed.
[ERROR] Command output:
[ERROR] To ssh://gitosis@10.41.129.2/NeuralAnalysis.git
[ERROR] ! [rejected] NeuralAnalysis-1.5.6 -> NeuralAnalysis-1.5.6 (non-fast-forward)
[ERROR] error: failed to push some refs to 'ssh://gitosis@10.41.129.2/NeuralAnalysis.git'
[ERROR] To prevent you from losing history, non-fast-forward updates were rejected
事实上,尝试 git push ssh://gitosis@10.41.129.2/NeuralAnalysis.git NeuralAnalysis-1.5.6手动执行,也会以同样的抱怨退出.
表演git pull'已经是最新的'.git branch显示我在'主人'.git push origin给'一切都是最新的'.
使用Tower查看存储库显示'master','origin/master'和'NeuralAnalysis-1.5.6'在最后一次提交时都是相同的.工作目录包含release.properties和pom.xml.releaseBackup文件.
它看起来像整个存储库的一切都很好.
Pet*_*etz 12
事实证明,它是一个具有相同名称的远程标签,正如VonC在评论中所建议的那样.这可能是由一些先前中止的版本创建的.
虽然我通过手动检查远程存储库上的refs/tags目录找到了远程标记,但是 git ls-remote --tags也会显示它们,并且git push --verbose还会显示有关该问题的更多信息.
要解决此问题,请先使用检索远程标记git fetch --tags.
执行下一步的一种方法是通过更新pom.xml以获得更高的-SNAPSHOT版本(包括该快照的其他模块在同一项目中的任何引用)来绕过该发布标记,检查这些并执行mvn release:clean; mvn release:prepare再次.