2012-04-24 7 views
12

ここにシナリオがあります:私はsomeonesリポジトリをGithubからフォークし、それをローカルディレクトリにクローンします。私は変更を加え、コミットしてフォークされたリポジトリにプッシュします。私は元のリポジトリにプルリクエストを送信しますが、何らかの理由で拒否されます。元のリポジトリは他の人からコミットを取得し、フォークされたバージョンは古くなってしまいます。さて、元のレポの最新バージョン(私のフォークされたレポやローカル)を入手するにはどうしたらいいですか?また、拒否されたコミットのためにGithubのコミット履歴を削除するにはどうすればよいですか?フォークされたGitリポジトリを削除して再フォークせずに再取得するにはどうすればよいですか?

+0

実際より適切である可能性の重複:それは-B

EDITでなければなりません拒否プルリクエスト](http://stackoverflow.com/questions/9538320/abandoning-git-commits-on-github-for-rejected-pull-requests) – CharlesB

答えて

8

マスターブランチで独自の変更を加えないでください。新しいブランチを作成して変更を加えてプッシュする必要があります。リモート1へのあなたのブランチが同じようにしたいとにかく場合の対処:

と仮定すると、あなたがそこに先に行くと、上流で上書き分岐マスターがある場合は、リモートgit fetch upstreamgit checkout -f -B master upstream/master

checkoutコマンドのように、上流は、上記のだろう持っています/マスタが上流/マスタからそれを作成していない場合は、マスタです。

あなたは上流のリモート使用などgit remote add upstream repositoryurl

EDITを追加して持っていけない場合:[GitはのためのGithub上でコミット放棄のgit reset --hard upstream/master

4

GitHubでフォークされたリポジトリを同期させて保存することは、2段階のプロセスです。

  1. と同期して、あなたの地元のレポをしてください:

    gitが上流フェッチ。 gitの上流マージ/

  2. を習得

    あなたの地元のレポと同期してGitHubの上であなたのフォークをしてくださいgitのプッシュ原点マスター

は、いくつかの説明についてはGitHub Fork A Repoを参照してください。フォークしたリポジトリのリモートとして '上流'を設定する必要があります。

'拒否されたコミット'の場合、ローカルブランチでそれらを実行した場合、ブランチを削除するだけで済みます。ローカルブランチにない場合は、ブランチのHEADを選択したコミットに戻す必要があります。 Like:

# Assume you are on master and need to go back to commit BeadBabe 
git checkout -b temp 
git branch -f master BeadBabe 
git checkout master 
git branch -d temp 

削除されました。

+1

私はこれが受け入れられた答えよりも少しはっきりしていることがわかりました。説明ありがとう! – Tim

関連する問題