3

在 ZendStudio 9 中从 Git 建立一个项目。(基于 eclipse 和 eGit)

它生成一个安静的正常 fetch refspec:

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

但是一个非常神秘的 push 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 是为了什么?
  • 在本地分支上工作而不是在服务器上使用 ref 推送不是更好吗?

提前致谢。

4

1 回答 1

3

一,通常的 Gerrit 相关 refspec 应该是(正如jszakmeister在“ Gerrit 代码审查 - 上传更改”中所评论的那样)

HEAD:refs/for/branchname

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

HEAD:refs/for/master

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

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

不它不是。

这是一个糟糕的默认值,一文不值?

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

这可能是该线程提到的副作用:

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

错误 347077“使 Gerrit 功能可选”仍然存在。


OP tweini评论

To go out of this trap, iI had to realize, that this ref is creating a branch on remote without a remote tracking branch associated with it.

But to get rid of it is pretty easy:

  • Change push refspec in .git/config to push = refs/heads/master:refs/heads/master,
  • Push your local repo to remote git push
  • Delete the branch on remote git push --delete origin refs/for/refs/heads/master
于 2012-12-12T07:04:48.597 回答