マスターブランチをアップストリームに戻す方法


145

私はgitリポジトリをforkし、上流でセットアップしました。Masterブランチにいくつかの変更を加え、コミットしてgithubにプッシュしました。

次に、Masterブランチでのすべての変更を破棄して、アップストリームのマスターブランチと同じにするために何をすべきですか?

回答:


277

(私は今無視したい変更がoriginリモートにあり、masterブランチにいて、upstreamリモートの内容に戻したいと思っています)

まず、作業コピーを上流のマスターにリセットします。

git remote update
# the double hyphen ensures that upstream/master is
# considered as a revision and not confused as a path
git reset --hard upstream/master --

次に、この新しいブランチヘッドをオリジンリポジトリにプッシュします。早送りにならないという事実は無視してください。

git push origin +master

14
git remote add upstream <upstream_repo_url>GitHubを使用してブランチを分岐した場合も実行する必要がある場合があります。
加藤

3
+in の意味は何git push origin +masterですか?それはちょうど同じgit push origin masterですか?
bluenote10 2015年

4
@ bluenote10彼らは同じではありません。これ+は、gitに「早送りではないという事実を[無視]する」ように指示するものです。これはを行うのと少し似ていgit push --forceますが、その特定の参照にのみ適用されます。
ニックグリム2015年

1
私のために働いていませんでした。アイテムが変更された後、gitステータスを実行しました。ワイプしてやり直す必要があります。Gitを理解するのは非常に困難です。
ミッチ

1
@mehmetいいえ、それはあなたがいるブランチだけを変更します。
ジョン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.