特定のブランチを別のブランチにマージするときに問題が発生しています。
プロジェクトのベースとなるブランチは全部で 3 つあります。DEV、SUP、マスター。開発者は DEV のブランチに基づいており、ベースラインのチケットが DEV にマージされ、顧客がテストできるようになっています。ローカル ブランチが DEV に基づいているため、この時点で追加の変更はありません。問題は、たとえばブランチ DEV12345 を SUP にマージしようとすると、DEV12345 ブランチ (コミット) で行われた変更とは無関係の一連の変更が表示されることです。
チェリーピッキングやその他の解決策について読んだことがありますが、GITを使い始めたばかりなので、私が見たいくつかの答えに従うのに十分な経験がありません.
SUP をマスターに MERGE するときの私の理解であるため、チェリーピックはしたくありません。コミットを失うか、マージの競合が増える可能性がありますか?
$ git merge DEV12345 --no-commit
$ git status
この時点で、私が望まない多くの変更が表示されます。ここStackoverflowの別のソリューションから取得したこれを試しました。
$git add <fileNamePath>
$git clean -f -d
$git reset HEAD
これが私がしたことだと思います。これにより、必要な特定の変更のみがもたらされたことを確認しました。つまり、100 個のファイルから 1 個のファイルが異なるだけでした。そして、私が自分でやったので、私が間違っていなければ信じています
$git commit -m "xxxxxxxxxxxx"
元の作成者のコミット/履歴を失っていたでしょうが、これは私たちにとって好ましくありません。
これを行う簡単な方法はありますか?最終的にマスターに投稿するときにも履歴が保持されます。顧客がチケットを承認したら SUP に投稿し、承認されたすべてのチケットを SUP に投稿したら、SUP をライブ システムであるマスターにマージします。
初心者が理解できるように、誰かが簡単な形式で解決策を提供できますか?
みんな、ありがとう!