3

EGit を使用してリモート ブランチから新しいブランチを作成すると、間違ったリモート トラッキングが設定されます。

リモート ブランチ refs/heads/master からローカル ブランチ feature1 を作成し、すぐにアップストリームにプッシュします。次のリモート追跡は、私の .git/config ファイルで構成されます。

[branch "feature1"]
    remote = origin
    merge = refs/heads/master

したがって、そのブランチをプルしてプッシュすると、リモート マスター ブランチから/へプルしてプルします。代わりに、次の追跡構成が必要です。

[branch "feature1"]
    remote = origin
    merge = refs/heads/feature1

EGit からでも修正できることはわかっていますが、チームの他の開発者がこれに気づかず、未完成の機能をマスター ブランチにプッシュしているのではないかと心配しています。

私は何か間違ったことをしていますか?

4

2 に答える 2

1

デフォルトでは、Egit は、リモート ブランチからブランチを作成するときに、merge パラメータの上流ブランチを取得します。
つまりremote/master、ローカル ブランチからのみプッシュするポリシーを適用する場合は、ローカルmasterで適用を試みることができます。

Egit が現在のブランチのみを同じ名前git config push.default currentのアップストリーム ブランチにプッシュすることを尊重するかどうかを確認します(これは実際にはgit1.7.10 の後にデフォルト ポリシーになる可能性があります)。 ただし、これには、すべての開発者が自分のレポでそのポリシーをアクティブにしていることを確認するという問題があります。

(フックのようなサーバー側フックを追加できる「中央」レポ 1 でそれを強制できるとは思わないupdate: そのスクリプトは、更新されるブランチの名前を取得します (つまり、ここでmasterは名前ではなく ' '下流レポのブランチの、つまりここでは ' feature1')


注:バグ 378960は、Egit 3.2で解決済み (2014 年 2 月) としてマークされています。

Push Branch / Initial Push ウィザードは、ブランチのプッシュを簡素化し、プッシュ操作によって作成された新しいブランチのアップストリーム構成も可能にします

https://wiki.eclipse.org/images/6/6f/Egit-3.2-PushBranchWizard.png

于 2012-05-11T07:30:58.223 に答える
0

おそらく、開発者には、リモート追跡ブランチ (origin/master など) からではなく、ローカル ブランチ (マスター) から機能ブランチを作成するようにアドバイスする必要があります。このように、EGit はデフォルトでリモート追跡を設定しません。

その後、ブランチを初めて公開することにした場合は、バグ 378960が実装された後に、リモート追跡 (git push --set-upstream と同等) を設定できるはずです。

于 2012-05-16T13:45:44.417 に答える