HOWTO · Git

開発ブランチをマスター ブランチと同一にする

開発ブランチをマスター ブランチにリセットするために使用できるさまざまな方法。

この記事では、master ブランチと同じになるように development ブランチをリセットする方法について説明します。 Git リポジトリのクローンを作成し、master ブランチから development ブランチを作成したとします。

コードをいじってみると、ブランチが乱雑であることに気付き、master ブランチと一致するようにリセットしたいとします。 これについてどう思いますか?

開発ブランチをマスター ブランチと同一にする

development ブランチを master にリセットするには、2つの方法があります。 最も単純でクリーンな方法は、ポインターを再作成することです。

development ブランチのポインターを再作成するには、master ブランチに切り替えて、以下のコマンドを実行します。

$ git branch -f development master

これにより、master ブランチのコミット履歴と一致するように development ブランチのコミット履歴がリセットされます。

これに代わるものとして、git reset コマンドがあります。 まず、development ブランチに切り替えて、以下のコマンドを実行します。

$ git reset --hard master

このコマンドは、git branch -f コマンドと同じ効果があります。 ただし、これらのコマンドは両方とも、master ブランチに存在しない development ブランチの変更を無効にします。

これらの変更を排除したくない場合は、代わりに master ブランチの現在の状態を反映するコミットを作成できます。 これを行うには、次の手順を実行します。

まず、git checkout development コマンドで development ブランチに切り替えます。 以下に示すように、コミットを作成せずに master ブランチを development ブランチにマージします。

$ git merge master --no-commit

このコマンドは変更をマージしますが、コミット部分の前にマージを停止します。 以下のコマンドを使用すると、インデックスから master ブランチの変更をチェックアウトできます。

$ git checkout --theirs master .

. を含めることを忘れないでください。 コマンドの最後に。 残っているのは、変更をコミットすることです。

$ git commit -m"Resetting development to master"

これにより、master ブランチに存在しない変更が保持され、master ブランチの現在の状態が反映されます。

簡単に言えば、ポインターを再作成するか、または git reset --hard コマンドを使用して、任意のブランチを master にリセットできます。 どちらの方法でも、master ブランチに存在しない変更はなくなります。

これらの変更を保持したい場合は、最後に説明した方法を使用してください。