Eclipseで「アップストリームにプッシュ...」を使用する場合、新しい「ローカル」コミットがリモートリポジトリにプッシュされ、ローカルリポジトリでリモートブランチrefが更新されます(したがってmaster
およびOrigin/master
同じコミットを参照します)。
「プッシュ...」を使用して、ウィザードウィンドウでマスターにプッシュ参照を追加する場合(refs/heads/*
)、新しい「ローカル」コミットはリモートリポジトリにプッシュされます(以前と同様)が、リモートブランチの参照はローカルリポジトリで更新されません(したがって、master
は最後のコミットを参照しますが、Origin/master
は移動しませんでした)。
これら2つの作業方法の違いは何ですか?特定の分散ワークフローに役立ちますか?これら2つのアプローチの対応するgitコマンドは何ですか?
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
Paulが提案したように、EGitのBugzillaで bug を開き、そこに説明がありました。
「プッシュ...」を使用すると、EGit PushWizardは、JGitのコマンドを、名前ではなくリポジトリURIで呼び出します。そのため、JGitはリモートトラッキングブランチを更新できません。
バグは未解決なので、今後のリリースで、「設定済みのリモートリポジトリ」から「プッシュ...」を実行すると、リモートトラッキングブランチが更新されることを期待できます。
Push ...ダイアログを開き、タグ、HEAD:refs/heads/masterなどの特殊なケースなど、プッシュアップする必要があるrefspecを指定できます。
プッシュの追加設定は、Git Repositories
またはPackage Explorer
ビューから利用できますが、正しいオプションを選択する必要があります。
Git Repositories
ビューから:
Push
を選択しますNext
をクリックします[〜#〜] or [〜#〜]
Remotes
フォルダーを展開します。Origin
を右クリックしますConfigure Push...
を選択しますAdvanced
ボタンをクリックします(Origin
を展開し、Push
を右クリックしてConfigure Push...
に移動し、Advanced
ボタンを押すこともできます)
Package Explorer
ビューから
Team
-> Remote
-> Push
-> Next
(上記の手順で[詳細設定]ボタンを押すのと同じです。)[〜#〜] or [〜#〜]
Team
-> Remote
-> Configure Push to Upstream...