Esmagar para apenas um commit "correto" para solicitação de pull do github

Eu tenho um repo no github que outra pessoa (Bob, por causa do argumento) emitiu um pedido de pull para. Seu código não é perfeito, então passamos por algumas rodadas de marcações. Pelo que entendi, ele se compromete e empurra para sua solicitação de pull para cada conjunto de alterações marcadas.

Então meu repositório agora se parece com isso:

master: ---o A (Chowlett
           |
           |
pull-req:  o---o---o---o
               B   C   D (all Bob)

Commit SHAs e msgs são os seguintes:

UMA:

123456 Good commit <chowlett>

B:

777ccc Fix the widget bug <bob>

C:

888ddd Review markups <bob>

D:

999eee Further markups <bob>

Agora estou feliz em aceitar este pedido de pull; mas eu prefiro que as versões de pré-marcação não estivessem no meu repositório. Posso conseguir todos os itens a seguir? e como?

Mesclar B, C & D no meu repositório como um único commitGere o "Merge pull request # 99 into ..." tambémFaça com que o github feche automaticamente a solicitação de recebimento

questionAnswers(5)

yourAnswerToTheQuestion