現在の Git ブランチをマスターブランチにする 質問する

現在の Git ブランチをマスターブランチにする 質問する

Git にリポジトリがあります。ブランチを作成し、マスターとブランチの両方にいくつか変更を加えました。

その後、数十回のコミットを経て、ブランチの状態がマスターよりもはるかに良いことに気づいたので、ブランチをマスターに「して」、マスターの変更を無視したいと思います。

マスターに変更を保存したくないので、マージできません。どうすればいいですか?

追加情報: この場合、「古い」マスターはすでにpushGitHub などの別のリポジトリに移動されています。これにより状況はどのように変わりますか?

ベストアンサー1

他の 2 つの回答の問題は、新しいマスターが古いマスターを祖先に持っていないため、プッシュすると他のすべてが混乱してしまうことです。これを実行するには、次の操作を行います。

git checkout better_branch          # This is the branch whose commits you want to keep
git merge --strategy=ours master    # keep the content of this branch, but record a merge
git checkout master                 # You want to **lose** all changes on this branch
git merge better_branch             # fast-forward master up to the merge

の古いバージョンではgit、履歴をもう少し明確にしたい場合は、マージコミット メッセージに何らかの情報を追加して、何をしたかを明確にすることをお勧めします。2 行目を次のように変更します。

git merge --strategy=ours --no-commit master
git commit          # add information to the template merge message

新しいバージョンの git では、gitは自動的に git メッセージ エディターを開きます。(または を使用することもできますgit mere --strategy=ours master -m "Keeping better_branch")

おすすめ記事