0

マスターにマージされ、本番環境に出荷された期間限定の機能をコーディングしました。時間になったので、この機能を含むコミットをコード ベースから削除したいと思います。

通常git rebase -i、コミットを実行して削除します。

ただし、これらのコミットは既にリモート リポジトリにプッシュされているため、ローカルでリベースしてブランチをプッシュしようとすると、ブランチの先端がどのように遅れているかについて苦情があり、早送りできます。

リベースから「新しいコミット」を生成して、不要なコミットを元に戻す方法はありますか? 「クリーンな」コミット履歴を持つことはあまり気にしません。これらのコミットを取り消す方法は何でも素晴らしいでしょう。

4

2 に答える 2

1

git push --forceデフォルトでは、push履歴の書き換えを拒否するため、リモートへのブランチを作成する必要があります。

于 2012-12-19T01:12:41.500 に答える
0

機能を削除したいだけで(機能の履歴は削除したくない)、すべてがいくつかの特定のコミット(他の機能には影響しない)に含まれている場合はgit revert、答えになる可能性があります。

これは常に適切に使用できるオプションではありません (たとえば、コミットには、削除したくない他の機能が含まれている場合があります)。または、機能の痕跡を削除したいというやむを得ない理由がある場合もありますが、これは便利なコマンドです。知っている。

于 2012-12-19T08:34:19.693 に答える