2017-11-30 12 views
0

私はこの特定の質問のすべての回答を読みましたが、重複しているように見えるかもしれませんが、私はそうは思わないと思います。何か異質なことをして、おそらく私は答えを理解していないし、私はgitでそれほど強くはない。 (主にソースツリーを使用して)gitログから不要なプッシュコミットを取り除く方法

問題がある:

  1. 私はそれが開発している間に私が得たプロジェクトを持っており、それはどこでも私はそれを修正するタスクを持って行う行きませんでした。今度はそれが修正され、以前の開発者の古いコミットの30倍のようにプッシュしました。私の上司は、クライアントに見せたくないログ(履歴)から特定のコミットを削除したいと思っています

  2. 問題は私のコードが古いコミットのコードに基づいていたため、プロジェクトフォームのスクラッチを開始する時間がなかったため、古いコードを修正してフォームに入り、私は何かを削除することを恐れています。

  3. 明確にするには(私はgitの歴史を投稿できません、申し訳ありませんが、誰かが助けてくれることを願っています)。歴史の中では、私は2つの私は完全に削除する必要がコミットをプッシュしているyをログと履歴から削除しますが、それらにプッシュされたコードはにしておき、履歴に保存する必要があるコミットをさらにプッシュしました。

ありがとうございました。申し訳ありませんが、ここに入れる例はありませんでした。

+0

実際の主な問題は、コミット履歴が線形であるかどうかであり、そうでない場合は非線形にする必要があるかどうかです。 – tkruse

答えて

2

古いコミットから現在のコミットまでの履歴が線形の場合、単純な対話型のリベースと強制的なプッシュが可能です。対話型のリベースでは、 "悪い"コミットを前後にコミットすることができますので、変更はまだそこにありますが、他のコミットの一部であるように見えます。

ブランチ名の下で現在の状態を「バックアップ」することができます。また、リベース後に比較することができます。結果が気に入らない場合は、常にバックアップコミットを再設定できます。

+0

10xしかし、誰かがプッシュした後にすでにマスターを引っ張ってしまった場合、プルリクエストをもう一度やるとどうなりますか?私はインタラクティブなrebaseについて読んでいますが、私が読んだことから、私はクライアントが既にプッシュされたコミットを引っ張っても、彼らの側でそれを修正しなければならないということはまったくないようです。私が間違っている?私はそれを残す価値があるかもしれないと思っています。彼は隠されていないものを隠そうとしています... – Erez

+0

誰かがすでにコミットを受けている場合は、それらはコミットを「失う」。彼らは古い歴史と新しい歴史の両方を見て、なぜ誰かがこれをしたのか疑問に思います。 – tkruse

+0

これは私が考えていたものです... 10倍。あなたが気にしない場合、対話型のリベースについて読んだことから、リベースと同様に、コミットを削除すると、そのコミットにあったコードは削除されますか?おそらく私はそれを理解していないが、すべての投稿で私はそれがコミットの背後にあるコードも削除されているようだので、単にログの履歴を削除していない、実際にコードを削除していると、あなたがやっていることを知っていることを確認してくださいが、私は確信していませんLOL – Erez

関連する問題