マスターによるGIT上書きブランチ


33

私は完全に時代遅れの古いdevブランチを持っています。削除したくありませんが、その内容を完全にmasterブランチに置き換えたいです。意味、dev_branch = masterが欲しい

私は試した:

git merge -s ours dev_branch

うまくいかなかった...

回答:


53

あなたはからのすべての変更したい場合masterdev_branch、その後を、:

git checkout dev_branch
git reset --hard master

これは、他の人がリポジトリを複製していない場合にのみ機能します。

あなたがいる場合はdev_branch、すでにリモートにプッシュ、あなたがしなければなりません。

git push --force

強制的にリモートにプッシュします。警告:これは、以前にクローンを作成した人のブランチの履歴を壊します!次に、他の人が変更を取得するためgit pull --rebaseにを実行するdev_branch必要があります。


devブランチの名前を古いものに変更してからmaster、同じ名前で新しいブランチを作成することもできます。

git branch -m dev_branch old_dev_branch
git branch -m master dev_branch

または、ours戦略を使用します—なぜそれがあなたのために働かないのかわからない:

git checkout master
git merge -s ours dev_branch
git checkout dev_branch
git merge master

名前変更ソリューションを使用すると、dev_branch元の場所(存在する場合)にプッシュできなくなり、masterローカルにブランチを作成できなくなることがわかります。
aidan

ありがとう@slhck!何らかの理由で、通常のマージを実行した後、ステージブランチが更新されませんでした。ステージブランチが最新であると言い続けました。「私たちの」戦略を使用してこれを解決しました。
スリック忍

私たちのものは衝突したチャンクにのみ影響しますが、彼は衝突だけでなくブランチを完全に更新したいのです!?(これは少なくとも私がする必要があることであり、なぜこのQを見つけたのか)-名前を変更するために行きます!
マーティンミーザー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.