web-dev-qa-db-ja.com

特定のブランチをマスターで上書きする方法

devmasterの2つのブランチがあります。 masterが最新であることがわかっているので、devブランチをmasterブランチで完全に上書きしたいと思います。 TortoiseGit UIを使用してそれを行うにはどうすればよいですか?

TortoiseGitを使用してマージしようとしましたが、多くの競合が発生します。

私はUIのみを使用しており、実際のGITコマンドに精通していないため、TortoiseGITの回答のみをお知らせください。

11
Jack

免責事項:これはTortoiseGitソリューションではありませんが、CLIソリューションです。とにかく誰かに役立つことを願っています。

誰もそれをまだ提案していないので、それを行うためのこの非常に簡単な方法にも注意しましょう:

git branch -f dev master

これは、最初に指定されたref(ここでは:dev)を、2番目のref(ここでは:master)が現在指しているのと同じポイントに設定する簡単な方法です。 (補足として、これらはこのコマンドの後で「リンク」されることはなく、すべての意図と目的のために独立したままです。)

ブランチ開発の履歴を書き換えるので、リモートの対応物がある場合は、強制的にプッシュする必要があります。

git checkout dev
git Push -f Origin HEAD

いずれにせよ、そのブランチで他の人と一緒に作業している場合、ここでの解決策はいずれも履歴を書き換える方法なので、事前に彼らと話し合ってください!

3
RomainValeri

TortoiseGitには、シナリオに応じていくつかのオプションがあります。

  1. devブランチにいます。ログダイアログに移動し、マスターブランチエントリのコンテキストメニューを開き、[リセット先]を選択して[ハード]を選択します。

  2. devブランチを使用していません:devという名前の新しいブランチを作成します。masterブランチをオリジンとして選択し、[ブランチが存在する場合はオーバーライド]を選択します(またはログダイアログで、devブランチのコンテキストメニューを開き、deleteブランチを選択し、masterブランチのコンテキストメニューを開いて、devという名前の新しいブランチを作成します。

1
MrTux

私はnoこれが正しいか間違っているかを考えていますが、次のように別のブランチをマスターで上書きしたようです:

git Push Origin master:otherbranch

そして、私が切り替えたとき、私は引っ張らなければならなかった、そして行って良かったですか?

0
EpicPandaForce