10

ローカルブランチ:-

「機能/100」

およびリモートブランチ:-

'主人'

「バージョン2」

偶然、

  1. 機能ブランチ「feature/100」をマスターにマージしました
  2. また、リモートリポジトリにプッシュしました。

しかし、実際には ' feature/100 ' はリモート ブランチ ' Version2 'にマージされているはずです。

修正方法(部分的) :-

機能ブランチ ' feature/100 ' をリモート ブランチ ' Version2 ' にマージし、それをサーバーにプッシュしました。

git checkout Version2
git merge --squash feature/100
git add .
git commit -m 'New message'

しかし、マージした最後のプッシュを削除して、マスター ブランチにコミットしたいと考えています。どのように?

サイドノート私はこのプロジェクトに取り組んでいる一人です..したがって、プッシュされたコミットが削除されても、他の人に害を及ぼすことはありません

4

3 に答える 3

21

次のいずれかを実行できます。

変更を元に戻す

git revert HEAD

これにより、マスターにプッシュしたばかりの変更を元に戻す新しいコミットが作成されます。これは最も安全なオプションです。なぜなら、あなたがプッシュアップした変更を他の人が既にプルしている可能性があるからです。

コミット履歴を変更し、変更を強制的にプッシュします

プッシュアップしたコミットを削除するには、次のようにします。

git reset --hard HEAD~1

git push origin master --force

master から誰もあなたの変更を引き下げていないことを完全に確信していない限り、これを行うべきではありません。

詳細については、「Git のブランチからコミットを削除する」を参照してください

于 2012-09-06T18:03:01.670 に答える
0

おそらく手遅れですが、プッシュされたブランチ ( master?) を 1 つのコミットで巻き戻したい場合は、次のコマンドを発行します。

git push origin +master^:master

+プッシュを強制し、master^前後のコミットを記述します。:masterリモートマスターブランチにプッシュします。

于 2012-09-06T17:55:26.607 に答える