web-dev-qa-db-ja.com

Eclipseの「プッシュ...」と「アップストリームにプッシュ...」の違いは何ですか

Eclipseで「アップストリームにプッシュ...」を使用する場合、新しい「ローカル」コミットがリモートリポジトリにプッシュされ、ローカルリポジトリでリモートブランチrefが更新されます(したがってmasterおよびOrigin/master同じコミットを参照します)。

「プッシュ...」を使用して、ウィザードウィンドウでマスターにプッシュ参照を追加する場合(refs/heads/*)、新しい「ローカル」コミットはリモートリポジトリにプッシュされます(以前と同様)が、リモートブランチの参照はローカルリポジトリで更新されません(したがって、masterは最後のコミットを参照しますが、Origin/masterは移動しませんでした)。

これら2つの作業方法の違いは何ですか?特定の分散ワークフローに役立ちますか?これら2つのアプローチの対応するgitコマンドは何ですか?

34

Push to Upstream ..は、リモート追跡ブランチに期待されるようにブランチをプッシュします。

Push ...ダイアログを開き、タグ、HEAD:refs/heads/masterなどの特殊なケースなど、プッシュアップする必要があるrefspecを指定できます。

Origin/masterが更新されないのはバグのように思えるか、Originを更新する次のフェッチを待っているのかもしれません。 https://bugs.Eclipse.org/bugs/enter_bug.cgi?product=EGit&component=UI でバグをオープンします

PW

16
Paul Webster

Paulが提案したように、EGitのBugzillaで bug を開き、そこに説明がありました。

「プッシュ...」を使用すると、EGit PushWizardは、JGitのコマンドを、名前ではなくリポジトリURIで呼び出します。そのため、JGitはリモートトラッキングブランチを更新できません。

バグは未解決なので、今後のリリースで、「設定済みのリモートリポジトリ」から「プッシュ...」を実行すると、リモートトラッキングブランチが更新されることを期待できます。

4

Push ...ダイアログを開き、タグ、HEAD:refs/heads/masterなどの特殊なケースなど、プッシュアップする必要があるrefspecを指定できます。

プッシュの追加設定は、Git RepositoriesまたはPackage Explorerビューから利用できますが、正しいオプションを選択する必要があります。

Git Repositoriesビューから:

  1. リポジトリの名前を右クリックします。
  2. Pushを選択します
  3. Nextをクリックします

[〜#〜] or [〜#〜]

  1. Remotesフォルダーを展開します。
  2. Originを右クリックします
  3. Configure Push...を選択します
  4. Advancedボタンをクリックします

Originを展開し、Pushを右クリックしてConfigure Push...に移動し、Advancedボタンを押すこともできます)

Package Explorerビューから

  1. プロジェクトフォルダー(一番上のアイテム)を右クリックします。
  2. Team-> Remote-> Push-> Next(上記の手順で[詳細設定]ボタンを押すのと同じです。)

[〜#〜] or [〜#〜]

  1. プロジェクトフォルダー(一番上のアイテム)を右クリックします。
  2. Team-> Remote-> Configure Push to Upstream...
0
mike