2016-03-23 4 views
31

プルリクエストを行いましたが、その後プルリクエストを汚染したプロジェクトをローカルでコミットしました。プルリクエストからコミットを削除するには

StackOverflowで同様の質問がありましたが、そこには何も適用できません。 これは私の最初のGitHubでのプルリクエストで、これがどのように機能するのかちょっと不思議です。

強調表示されたコミットは、他のすべてのものを保持して削除する必要があります。 私はいくつかのマージ物を作るので、それは歴史の中で4番目のコミットになります。

enter image description here

私のgitのログ enter image description here

誰かが起こっているとどのようにこの問題を解決するには何を説明してくださいすることができます。

+1

あなたは[rebase](https://git-scm.com/book/en/v2/Git-Branching-Rebasing)を必要とし、「githubから追加された」コミットのみを選択します(つまり、他のすべてのコミットの行) –

+0

rebaseどのブランチにどのブランチを追加してください。 – humazed

+0

'whatブランチ=あなたが作業しているブランチ、'どのブランチに 'は=あなたがに要求を引っ張っているブランチ –

答えて

31

あなたにはいくつかのテクニックがあります。

This post - read the part about the revertは、私たちがやりたいこととそのやり方を詳しく説明します。

# Checkout the desired branch 
git checkout <branch> 

# Undo the desired commit 
git revert <commit> 

# Update the remote with the undo of the code 
git push origin <branch> 

revertコマンドは、新しいは、元のコミットを元に戻すとコミットを作成します。ここでは

はあなたの問題の最も簡単な解決策です。

+2

驚くばかりの男!!本当に私を助けました:) –

+0

私たちが別の人からプロジェクトをフォークし、プルリクエストでいくつかのコメントを削除したい場合でも動作しますか? –

1

ので

は、あなたのブランチ名がmy_branchであり、これは余分なコミットを持っていると言うことができます、次の操作を行います。

  1. Gitチェックアウト-b my_branch_with_extra_commits(別の名前で保存されたこのブランチを維持)
  2. gitk(gitのコンソールを開きます)
  3. 残したいコミットを探します。そのコミットのSHAをメモ帳にコピーします。
  4. gitのチェックアウトmy_branch
  5. gitk
  6. が右あなたが(変更前の状態)に戻すと、「ここにブランチをリセット」をクリックします
  7. ドをコミットをクリックしてください(これはgitのコンソールを開きます) gitのは、今の歴史をコミットし、すべてが良く見えることを確認しますローカルブランチを見て
  8. Gitの

を桜選ぶ_merge_to --rebase原点branch_name_toを引きます。

関連する問題