開発ブランチのすべてのコンテンツを別のコンテンツ(つまり、マスター)で上書きしたいのですが、開発ブランチの古いコミットを見逃したくありません。
これは私が欲しいものです:
私は私たちの戦略とマージすることとハードリセットを行うことの両方を試みましたが、devブランチは古いコミットを失い続けています。
私が取得しようとしているのは、青と赤の差がゼロのコミットと、最初の黒のコードと青の差があるときにドロップされたコードです。
これまでに試みたソリューションの概要を共有するだけです。これを行うことによって:
git checkout master
git merge -s ours dev
git checkout dev
git merge master
私はこれを取得します(開発者はマスターからすべての履歴を取得します)
これを行うことによって
git checkout dev
git reset --hard master
私はこれを取得します(開発をプッシュすると、すべてのブラックコミットが失われます):
私がこれを行う場合:
git checkout dev
git merge $(git commit-tree -p dev -m "Align master > dev" master^{tree})
私はこれを取得します(ほぼ完璧ですが、トリックを行った正確な瞬間を思い出すのは難しいでしょう):
これは次のようになります。
git checkout -f develop # go to develop branch
git merge --no-commit master
git checkout master -- . # this checkouts code from master and doesn't switch branch
# you are still in merge process on branch develop
git commit
テーリング-- .
はの動作を変更することに注意してくださいgit checkout
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加