2017-02-28 15 views
1

私はいくつかのコミットを行い、リモートのリポジトリにプッシュしました。削除したいものの1つ。バイナリファイルは1つしか含まれておらず、そのブランチでそのコミットでのみ変更されました。どのように後でコミットのためにそれを削除するには?ブランチの途中からコミットを外す

+5

'git rebase -i TARGET_COMMIT〜1'そして、' TARGET_COMMIT'を選択しないでください。 – CollinD

+1

@CollinDのソリューションでは、変更を早送りすることができないため、強制的にリモートリポジトリにプッシュする必要があります( '--force-with-lease')。 これらの問題を回避したい場合は、このコミットを 'git revert 'することができます。 – kolejnik

答えて

1

interactive (-i) rebaseを使用すると、前回のコミットを削除できます。

$ git log       # copy the target commit 

$ git rebase -i <target-commit>~1 # start rebase from the previous commit of target commit 

編集者はコミットのリストを1行に1つずつ表示します。これらの行のそれぞれは、で始まります。 ターゲットコミットの行をコメントアウトします(#をターゲットコミット行の先頭に置きます)。

$ git rebase --continue  # repeat the command until finish rebase 

gitの履歴が変更されたので、強制的にリモートから強制的にプッシュする必要があります。

$ git push -f origin HEAD 
+0

最後のステップすなわちプッシュ-fの後に何が起こりますか? –

+0

@AKSHAYSHINGOTEあなたのリモート(ここでは 'origin')が更新されます(gitの履歴からコミットを削除します)。 –

関連する問題