54

このリポジトリを自分のコンピューターに複製しました: https://github.com/derobins/wmd.git

ただし、いくつかのバグがあり、別のユーザーがそれらを修正して「プルリクエスト」を発行したようです (これらは、変更をコミットするためのリクエストだと思いますか?)

これらの変更を自分のローカル バージョンにマージすることはできますか?

編集:明確にするために、これは私のリポジトリではありません。私は derobins の WMD エディターを使用していますが、いくつかのバグがあり、それらのプル リクエストは修正する必要があります。私は(githubではなく)Ubuntuでレポを複製し、可能であればそれらの変更をマージしたいと考えていました。

4

3 に答える 3

57

(GitHub には、プル リクエストの処理方法に関する非常に詳細なドキュメントがあります。)

基本的に、プル リクエストを作成した人のリポジトリにリモートを追加する必要があります。たとえば、次のようになります。

git remote add helpful git://github.com/helpful-person/whatever.git

... 次に、変更をリモート追跡ブランチにフェッチします。

git fetch helpful

...これで、その人の GitHub リポジトリからのすべてのコミットがアップストリーム リポジトリのクローンに含まれるようになりました。そのプル リクエスト内の追加のコミットを見ると、次のことができます。

  1. 最新のものをマージします。git merge 75708aeab5
  2. これらの変更のそれぞれをチェリーピックします。たとえばgit cherry-pick 2142db89git cherry-pick 75708aeab5
  3. それらにさらに取り組むためにローカルブランチを作成します。git checkout -b fix-for-issue3 75708aeab5
  4. などなど

別の方法としては、プル リクエストを作成した寄稿者のリポジトリをクローンするだけです。

于 2011-04-05T14:20:00.770 に答える
33

受け入れられた回答は、プルリクエストを作成した人のリポジトリのリモートを複製または追加することを提案しています。別のよりクリーンで簡単な方法は、このコマンドを使用することです

git pull https://github.com/otheruser/repo.git branchname

たとえば、執筆時点で、ghiにはまだマージされていないオープン プル リクエストが 3 つあります。これは、それらをローカル リポジトリにマージするために行ったことです。

# I want to make sure my master is in sync with the upstream master
git checkout -b merge-patches master
# first pull request
git pull --no-ff https://github.com/TiddoLangerak/ghi.git master
# second pull request
git pull --no-ff https://github.com/wayfare/ghi.git master

両方のプル リクエストがマスターから送信されたことに注意してください。そのため、masterブランチからプルしました。

この方法では、他のリポジトリがリモートに追加されず、ローカルでチェリー ピックやクローンを作成する必要もありません。

于 2013-10-28T11:01:37.110 に答える
-2

リポジトリを github アカウントにクローンします。次に、クローン リポジトリの forkqueue にアクセスし、リポジトリにマージするパッチを選択します。

于 2011-04-05T14:15:33.560 に答える