WebインターフェースでGitHubリポジトリフォークを更新するにはどうすればよいですか?


58

数か月前に他のプロジェクトから分岐したGithubリポジトリがあります。数か月後、元のマスターリポジトリが変更されました。これらの変更を反映するためにリポジトリを更新したいと思います。これはGithub Webインターフェースで可能ですか?または、レポを削除して再フォークするだけですか?




回答:


43

プルリクエストがどのように発生するかを試すことができます。

  1. あなたのフォークに行きます
  2. プルリクエストを発行する

    デフォルトでは、これは右側のフォーク(head repo)であり、左側の元のリポジトリ(base repo)へのコミットと変更をプッシュすることを要求します。

  3. ベースリポジトリとヘッドリポジトリの両方のドロップダウンをクリックして、互いのリポジトリを選択します。

    オリジナルのリポジトリが右側(プッシュする変更があるリポジトリ)にある間に、左側にリストを表示する(変更を受け入れる)必要があります。この画像に示されているように:

    フォーク自体が完了しました

  4. プルリクエストを送信する

    フォークに変更がなければ、マージを自動的に受け入れることができるはずです。

コードが何らかの理由で競合するか、十分にクリーンでない場合、これはGitHub Webインターフェースを介して更新するために機能せず、フォークにプッシュバックする前にコードを取得してマシン上の競合を解決する必要があります。


3
これでも動作しますが、そうではありません。それは間違いなく単なるトリックです。それを行う適切な方法ではありません。
ジェイクウィルソン14

3
悪い考えを確認しました。これは、Githubが元のプロジェクトへの空のコミットをプルリクエストすることを提案する方法でリポジトリを汚染します。たとえば、github.com / dthommes / RoboSpring / pull / 3を参照してください-一度貢献してから同期し、Githubは「Merge pull request#1 from dthommes / master ... "
USR-ローカルΕΨΗΕΛΩΝ

1
これはもう機能しないと思います。少し奇妙に思えますが、これを行う簡単な方法はありません。
トビー・アレン

1
試してみたところ、すぐには機能しないようでした。フォークの1つを変更すると、「変更の比較」ページがすぐに開きました。しかし、「フォーク間で比較」リンクをクリックすると、とにかく他のフォークを変更できます。おそらく、この効果に何かを答えに加えることができます。
ピーターモーテンセン

4
あなたはtは百万のPRを作成する必要がドン"ので、GitHubには、「同期フォーク」ボタンを追加する必要があり、今私は私のフォークを更新するために、コマンドラインを使用していますについて。
Suiciドーガを

22

簡単になります。

  1. Forked Repo(yours)に移動し、「New pull request」ボタンをクリックします。
  2. 開いたページで、ドロップダウン選択の下のメッセージに「切り替えベース」への小さなリンクがあります。リンクをクリックしてください。
  3. これで、元のリポジトリに自動的に移動します。[ プルリクエストの作成 ]ボタンをクリックし、コミットメッセージを書き込みます。
  4. これで、フォークされたレポジトリが自動的に表示されます。[ プルリクエストマージ ]をクリックし、マージ確認して終了します。

あなたはそれらの緑のボタンが何であるかを明確にすべき、それは素晴らしいレスポンス....だろう
ロドリゴ・グラサ

これは間違いなく2016年4月現在のベストアンサーです。
dr01

7
このメソッドの問題は、ブランチに余分なコミットが追加されるため、実際にはアップストリームリポジトリと同期していないことです。
Mottie

@Mottieフォークが最新のアップストリームバージョンの背後にあるかどうかを知り、実際に変更を適用せずに変更の差分を確認する方法はありますか?
スジェイファドケ16

1
@SujayPhadke分岐選択ボタンの下のメインの分岐レポページには、「この分岐はxxxx:masterの背後でxxコミットです」というメッセージが表示されます。差分の表示に関しては、メッセージと同じ行に「比較」ボタンがあります。または、あなたは、このリンクに行くことができます:https://github.com/{user}/{forkedRepoName}/compare/master...{originalRepo}:master
Mottie

3

分岐したGitHubリポジトリをリモートのアップストリームリポジトリからの変更で更新する方法


GitHubヘルプの手順:

リモートフォークの構成

フォークの同期


セットアップ/操作手順:

Git Bash(Windows)またはLinux / Macターミナルを開きます

まだリポジトリのクローンを作成していない場合は、開発フォルダの作業ディレクトリに移動して、ワークステーションにクローンを作成する必要があります。

$ git clone https://github.com/YOUR_USERNAME/YOUR_FORK.git

ワークステーション上の分岐レポの作業ディレクトリに移動します。

$ cd /user/development/my_forked_repo/

フォーク用に現在構成されているリモートリポジトリを一覧表示します。

 $ git remote -v

origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)

フォークと同期される新しいリモートアップストリームリポジトリを指定します。

$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

フォークに指定した新しいアップストリームリポジトリを確認します。

$ git remote -v

origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

アップストリームリポジトリからブランチとそれぞれのコミットを取得します。マスターへのコミットは、ローカルブランチの上流/マスターに保存されます。

$ git fetch upstream

remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (delta 27), reused 44 (delta 9)
Unpacking objects: 100% (62/62), done.
From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
 * [new branch]      master     -> upstream/master

フォークのローカルマスターブランチを確認してください。

$ git checkout master

Switched to branch 'master'

アップストリーム/マスターからの変更をローカルマスターブランチにマージします。これにより、ローカルの変更を失うことなく、フォークのマスターブランチがアップストリームリポジトリと同期されます。

$ git merge upstream/master

Updating a422352..5fdff0f
Fast-forward
README                    |    9 -------
README.md                 |    7 ++++++
 2 files changed, 7 insertions(+), 9 deletions(-)
 delete mode 100644 README
 create mode 100644 README.md

ローカルブランチに一意のコミットがなかった場合、Gitは代わりに「早送り」を実行します。

$ git merge upstream/master

Updating 34e91da..16c56ad
Fast-forward
 README.md                 |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

ここで、コミットをフォークにプッシュする必要があります。

$ git push

まだ認証されていない場合は、githubのユーザー名/パスワードの入力を求められます。認証されると、新しいコミットがフォークにプッシュされ、githubに表示されます。


5
詳細な回答をありがとうございますが、Webインターフェイスを使用したソリューションが望まれていました。
トビーアレン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.