2012-07-31 36 views
4

我们使用git存储库和maven发布插件。在第一个构建步骤中,我们将所有更改提交到本地存储库,并在下一个步骤中运行mvn release:prepare release:performrelease:prepare更新工作区,更新pom文件中的版本,在资源库中创建标记,运行所有测试,构建jar等。如果没问题,它会将本地资源库更改推送到远程资源(更新的poms和创建的标记)。Maven发布插件与git,如果提交过程中推进错误

问题是,当有人推动一些改变的同时,从maven推送失败。错误消息是:

error: failed to push some refs to 'http://<my_repository>' 
To prevent you from losing history, non-fast-forward updates were rejected 
Merge the remote changes before pushing again. See the 'Note about 
fast-forwards' section of 'git push --help' for details. 

有人有类似的问题吗?如何解决它?

+0

*“更新[...]标签” * - 所以你要覆盖一个标签? – poke 2012-07-31 09:20:26

+0

否否,标签仅被创建。我编辑了这个问题。对不起,不够清楚。 – amorfis 2012-07-31 09:32:09

回答

3

看一看pushChanges

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <configuration> 
     <pushChanges>false</pushChanges> 
    </configuration> 
</plugin> 

...后来推

+0

嗯...它解决了我的问题吗?是的,Maven不会抱怨变化,但是如果有变化,并且我想推动,我需要首先'pull --rebase'并推动变化。然后,我最终发布了代码库上的发布标签,这不是真的发布,不是吗? – amorfis 2012-08-02 09:02:53

+0

你会发布并标记你的本地版本。之后你可以合并。 – 2012-08-02 15:48:28