3

ZendStudio 9 で Git からプロジェクトをセットアップします (eGit を使用した Eclipse に基づく)。

静かな通常のフェッチ 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..」で生成されたこの参照は何のためにありますか?
  • サーバーに参照をプッシュするよりも、ローカル ブランチで作業するほうがよいのではないでしょうか?

前もって感謝します。

4

1 に答える 1

3

1つは、通常のGerrit関連のrefspecです(「Gerritコードレビュー-変更のアップロード」でjszakmeisterがコメントしたように)

HEAD:refs/for/branchname

だから、どちらかといえば、それはすべきだった

HEAD:refs/for/master

しかし、あなたの場合、そのようなrefspecは必要ありません(Gerritがないため)

これはコミットする通常の方法ですか、

いいえそうではありません。

それは悪いデフォルトで、何の価値もありませんか?

あなたの場合、はい、それは役に立ちません。

これは、このスレッドが言及していることの副作用である可能性があります。

実際、Gerritは統合され、EGit機能と一緒に出荷されます。現在、ZendStudio内からGerritを無効にする方法はありません。

バグ347077「Gerrit機能をオプションにする」はまだ開いています。


OP tweiniコメント

この罠から抜け出すために、私は、この参照がそれに関連付けられたリモート追跡ブランチなしでリモート上にブランチを作成していることを認識しなければなりませんでした。

しかし、それを取り除くことは非常に簡単です:

  • push refspecを、に変更.git/configpush = refs/heads/master:refs/heads/masterます。
  • ローカルリポジトリをリモートにプッシュするgit push
  • リモートでブランチを削除しますgit push --delete origin refs/for/refs/heads/master
于 2012-12-12T07:04:48.597 に答える