お世話になっております。
gitで、1つのプロジェクトに複数のブランチがあります。
例えば以下のような流れで作業していました。
〇
├─ブランチX → X1コミット → → X2コミット → X3コミット
│ ↓ ↓
│ X1マージ X2マージ
│ ↓ ↓
└─ブランチY → Y1コミット → X1マージ → Y2コミット → X2マージ → Y3コミット
ブランチYはブランチXのカスタマイズ版で、Xに対して追加機能があるものです。
XでのバグはYにも反映されます。
ブランチX、Yともにリモートブランチにプッシュされています。
上記の時点(A)で、
ブランチXには、X1、X2、X3の改修がコミット/プッシュされています。
ブランチYには、Y1、X1、Y2、X2、Y3の改修がコミット/プッシュされています。
ここで、X3の改修をブランチYにマージしようとしました。
しかし、操作ミスにより、ブランチY→ブランチXにマージしてしまい、なおかつ
リモートブランチにプッシュしてしまいました。
これにより、この時点(B)で
ブランチXには、Y1、X1、Y2、X2、Y3、X3の改修がコミット/プッシュされています。
プッシュ済みのため、revertやresetを行っても状況が変わりません。
このブランチXを、時点(A)に戻したいです。
上記は例のため、実際の差分はもっと多くあり、時系列的にXとYの改修は混在します。
簡単に戻す方法があればご教示いただけないでしょうか。
使用しているツールは、TortoiseGit、VisualStudioのgitです。
(今回は、たまたまバックアップがあったため、そこから復元しました)
また、現在の運用ではX→Yがあっても、Y→Xは無いです。
マージの方向を一方通行にするような方法があればご教示いただけないでしょうか。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/05 03:43
2019/04/05 04:35