1. ホーム
  2. git

[解決済み] フォークをクリーンアップし、上流から再起動する

2022-03-20 06:18:03

質問

リポジトリをフォークして、いくつかの変更を加えたのですが、すべてを台無しにしてしまったようです。

現在の上流/マスターをベースにして、もう一度ゼロからやり直したいと思っています。
リポジトリをリベースするべきか、まったく削除するべきか?

解決方法は?

最も簡単な解決策は、(' upstream ' をリモート名として、フォークした元のレポを参照します)。

git remote add upstream /url/to/original/repo
git fetch upstream
git checkout master
git reset --hard upstream/master  
git push origin master --force 

(これと似たような GitHubページ、セクション "悪い状況に陥ったらどうすればいいのか"。 )

で行った変更が失われる可能性があることに注意してください。 master ブランチ (ローカルに、なぜなら reset --hard と、リモート側では push --force ).

へのコミットを保持したい場合は、別の方法として master を使用する場合、それらのコミットを現在の upstream/master .
リセット部分を git rebase upstream/master . その場合でも強制的にプッシュする必要があります。
"もご覧ください。 もしもの時はどうすればいい? "


より完全な解決策、現在の作品のバックアップ(念のため)については、"に詳細が記載されています。 git master ブランチをクリーンアップし、一部のコミットを新しいブランチに移動させる となります。

"もご覧ください。 元の GitHub リポジトリからフォークした GitHub リポジトリに新しい更新を取り込む "がどのようなものかを説明します。 upstream "です。


注:最近のGitHubレポでは を保護します。 master ブランチ に対して push --force .
そのため、プロテクトを解除する必要があります。 master を最初に作成し(下図参照)、次に を強制的に押し込んで再保護する。 ).


注:特にGitHub上では 現在(2019年2月) 上流にマージされたプルリクエストのフォークされたレポを削除するショートカットです。