178

上流のレポを取得してマスターに置き換えるにはどうすればよいですか? レポには master というブランチが 1 つしかなく、それを完全に台無しにしてしまったので、基本的には上流からやり直す必要があります。init でうまくいくと思いますが、もっと簡単な方法はありますか?

4

5 に答える 5

301

ここでできることは (少なくとも) 2 つあります。リモート リポジトリを再クローン化するかreset --hard、共通の祖先にプルしてから、リモート マスターの最新のコミットに早送りします。

具体的には、Nevik Rehnel の元の回答を簡単に拡張したものを次に示します。

git reset --hard origin/master
git pull origin master

: usinggit reset --hardは、コミットされていない変更をすべて破棄します。また、git を初めて使用する場合は、このコマンドで混乱しやすい可能性があるため、先に進む前に、このコマンドが何をするのかを理解していることを確認してください。

于 2012-12-08T20:08:33.293 に答える
25

ブランチ マスターの場合: git reset --hard origin/master

次に、いくつかのクリーンアップを行いますgit gc(これについては、マニュアルページで詳しく説明します)

更新:おそらくgit fetch origin(またはそのブランチのみgit fetch origin masterが必要な場合)も行う必要があります。これをリセットの前または後に行うかどうかは問題ではありません。(@eric-walker に感謝)

于 2012-12-08T20:08:06.560 に答える
7
git reset <hash>  # you need to know the last good hash, so you can remove all your local commits

git fetch upstream
git checkout master
git merge upstream/master
git push origin master -f

ほら、これでフォークは上流と同じに戻りました。

于 2015-11-07T00:08:04.260 に答える