什么Refspec HEAD:由Git / Zend Studio 9生成的refs / for / refs / heads / master是什么意思?

时间:2012-12-11 23:10:01

标签: eclipse git

从ZendStudio 9中的Git设置项目。(基于eclipse与eGit)

它生成一个安静的普通fetch refspec:

Remote Fetch Specification  +refs/heads/*:refs/remotes/original/*

但是一个非常神秘的推动refspec:

Remote Push Specification   HEAD:refs/for/refs/heads/master

在远程我可以通过“git ls-remote”看到以下内容:

8db575549dea67a45cea04358f902993c940c4d8        HEAD
16f0939153e6ef12b4596f0d4fb43fa5b8b0246b        refs/for/refs/heads/master
8db575549dea67a45cea04358f902993c940c4d8        refs/heads/master

我在本地机器上有“git status”的消息:

On branch master
Your branch is ahead of 'original/master' by 5 commits.

所以,请注意,因为我的问题不是“它意味着什么”......

我的问题是:

  • 此工作流程的含义是什么?什么是感觉?
  • 这对于服务器“refs / for ..”生成的内容是什么?
  • 是不是更好地在本地分支上工作而不是在服务器上使用ref来推送?

提前致谢。

1 个答案:

答案 0 :(得分:3)

一,通常的Gerrit相关refspec应该是commented中的jszakmeister Gerrit Code Review - Uploading Changes}

HEAD:refs/for/branchname

所以,如果有的话,应该是

HEAD:refs/for/master

但在你的情况下,你不需要那种refspec(因为你没有Gerrit)

  

这是一种通常的提交方式,

不,不是。

  

这是一个错误的默认值,什么都不值?

在你的情况下,是的,它没用。

这可能是this thread提及的副作用:

  

事实上,Gerrit与EGit功能集成并一起发货。目前无法在Zend Studio中禁用Gerrit。

bug 347077 "Make Gerrit features Optional"仍处于打开状态。


OP tweini comments

  

为了摆脱这个陷阱,iI必须意识到,这个ref正在远程上创建一个分支,而没有与之关联的远程跟踪分支

     

但摆脱它很容易:

     
      
  • .git/config中的推送refspec更改为push = refs/heads/master:refs/heads/master
  •   
  • 将您的本地仓库推送到远程git push
  •   
  • 删除远程git push --delete origin refs/for/refs/heads/master
  • 上的分支