从Netbeans推到Grit的Git
在从Netbeans 7.4(在Linux上)推送提交评论给Gerrit时遇到问题。 我的git配置:
[core] repositoryformatversion = 0 filemode = true logallrefupdates = true bare = false [remote "origin"] url = ssh://xxx@git.yyyy.com:9418/xxx/gitTestWeb3 fetch = +refs/heads/master:refs/remotes/origin/master push = HEAD:refs/for/master [user] name = Mxxx Cxxx email = xxxx@yyyy.com [branch "master"] remote = origin merge = refs/for/master [push] default = upstream
当我尝试启动“Git - > Remote - > Push to Upstream”时,我收到“没有为本地主机指定的跟踪远程分支”错误。 当我使用“Git - > Remote - > Push ...”时,我的提交总是直接添加到主分支。 Netbeans日志:
==[IDE]== 2014-02-24 16:37:53 Pushing - gitTestWeb3 git branch git remote -v setting up remote: origin git push ssh://xxx@git.yyyy.com:9418/xxx/gitTestWeb3 refs/heads/master:refs/heads/master Remote Repository Updates Branch Update : master Old Id : 38806fc76a933f4538a5f0b9fc500bd69309faba New Id : 38806fc76a933f4538a5f0b9fc500bd69309faba Result : UP_TO_DATE Local Repository Updates Branch Update : origin/master Old Id : 9d048427bb50d7de642083a903a18a11568eadec New Id : 38806fc76a933f4538a5f0b9fc500bd69309faba Result : FAST_FORWARD ==[IDE]== 2014-02-24 16:37:54 Pushing - gitTestWeb3 finished.
是否有任何强制执行Neteans git插件来遵守git配置的方法? 或者我应该配置别的东西?
顺便说一句,它也接缝,git钩子没有被解雇; 我已经安装了Gerrit的commit-msg,但NB提交后没有修改消息; 从命令行它完美地工作。
BTW2完全相同的git配置与eclipse(事件Juno)完美配合。 提取是由主人完成,而所有的推动来到refs / for / master进行审查。
为了从IDE中获得这个工作(在这里使用了“来自IDE的稍微松散的定义”),我不得不自己推出一些。 希望NetBeans团队或有时间掌握的社区中的某位英雄能够根据回购类型和安装的钩子从IDE中的提交对话框中获得此工作。 只要你的终端在NetBeans中工作(在我的情况下是Windows上的Cygwin),你可以很容易地获得你需要的钩子消息Change Id,并且也可以让Gerrit发布工作。
我首先将commit-msg钩子复制到我的路径(我的用户的bin)中的一个目录中,并在脚本的最后一行添加了$@
,以便可以从命令行调用脚本的功能。 然后我添加了一个用于调用它的别名,以及用于从本地回购库执行Gerrit发布的另一个别名。 我还在NetBeans提交对话框的“加载模板”弹出对话框中创建了一个简单的提交消息模板,如下所示:
Change-Id: I
让它在提交消息中预先填充是很好的,因为它提醒我(我们刚开始使用Gerrit)代码审查需要完成,我需要填写其余的更改ID。 这是我的.bashrc别名:
alias getChangeId="commit-msg _gen_ChangeId 2>/dev/null"
在获得消息的其余更改ID部分并在其上添加其他任何行以进行更改和提交后,我准备从我的分支根目录的命令行调用别名以发布到Gerrit。 这是:
alias gerritPublish='_gerritPublish'
_gerritPublish ()
{
localBranch=`git rev-parse --abbrev-ref HEAD`
git push -u --progress "origin" HEAD:refs/publish/dev/$localBranch
}
修改最后提交仍然可以在IDE的提交对话框中正常工作,并填写正确的消息并更改ID,所以很好。 我喜欢使用IDE的提交对话框,而不是单独使用命令行,因为它的内置并行处理功能非常棒。 尽管如此,所有这些都没有我想要的那么干净,但现在它运行良好,而且我不必启动任何其他工具或离开NetBeans,所以我希望它有所帮助。
链接地址: http://www.djcxy.com/p/16025.html