Git でブランチを上書きする

More than 1 year has passed since last update.



$ git reset --hard 上書き元ブランチ


例えばフォークした個人用リポジトリー (例 の master を、フォーク元 (例: の master で上書きしたい (全く同じ状態にしたい) 時。

普段は git rebase を使って以下のようにやっていました。

$ git remote add upstream

$ git fetch upstream
$ git rebase upstream/master

しかし、時としてコンフリクトが発生してしまうことがあります。この場合、余計な merge コミットが入ってしまいます。

$ git rebase upstream/master

First, rewinding head to replay your work on top of it...


CONFLICT (content): Merge conflict in data/app_mobile/Controller/EntryController.php
Failed to merge in the changes.
Patch failed at 0002 Throw exception object so not only traces are logged
The copy of the patch that failed is found in:

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".


$ git remote add upstream

$ git fetch upstream
$ git reset --hard upstream/master

としてあげると、現在のブランチの内容は完全に破棄され、upstream/master の内容で上書きされます。