2012-06-03 81 views
6

試圖在之前已成功發佈的maven項目上執行發佈。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://[email protected]/NeuralAnalysis.git [ERROR] ! [rejected] NeuralAnalysis-1.5.6 -> NeuralAnalysis-1.5.6 (non-fast-forward) [ERROR] error: failed to push some refs to 'ssh://[email protected]/NeuralAnalysis.git' [ERROR] To prevent you from losing history, non-fast-forward updates were rejected

而事實上,試圖手動執行git push ssh://[email protected]/NeuralAnalysis.git NeuralAnalysis-1.5.6,也將退出同樣的抱怨。

表演git pull說:「已經跟上時代的」。 git branch顯示我在'主'上。 git push origin給出'一切都是最新的'。

考慮使用塔庫顯示,「主」,「產地/ master」和「NeuralAnalysis-1.5.6」都是一樣的,並在最後提交。工作目錄包含release.properties和pom.xml.releaseBackup文件。

它看起來對我來說就像整個資源庫一切都很好。

+1

你有(本地或遠程)A *分支*名爲'NeuralAnalysis-1.5.6'像標籤你正在試圖推動?你能用'git push --verbose ssh://[email protected]/NeuralAnalysis.git NeuralAnalysis-1.5.6'的輸出來編輯你的問題嗎? – VonC

回答

9

原來這是具有相同名稱的遠程標籤,通過VonC在註釋建議。這可能是由一些先前流產的版本造成的。

雖然我通過手動檢查遠程存儲庫上的refs/tags目錄來找到遠程標籤,但git ls-remote --tags也會顯示它們,git push --verbose也會顯示更多關於此問題的信息。

爲了解決這個問題,先用git fetch --tags檢索遠程標籤。

然後,執行下一步的一種方法是通過更新pom.xml以獲得更高的-SNAPSHOT版本(包括其他模塊在同一項目中對該快照的任何引用),繞過該版本標記,檢查這些在,並且再次做mvn release:clean; mvn release:prepare

+0

有趣的反饋。 +1 – VonC

+0

是的,很好的反饋+1 –