Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
15
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

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

TL;DR

現在のブランチを、あるブランチで上書きするには

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

詳細

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

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

$ git remote add upstream git@github.com:growaspeople/some-repo.git
$ 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:
   /path/to/some-repo/.git/rebase-apply/patch

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@github.com:growaspeople/some-repo.git
$ git fetch upstream
$ git reset --hard upstream/master

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
15
Help us understand the problem. What are the problem?