sindresorhus / ama

[[I'm slow at replying these days, but I hope to get back to answering questions eventually]] Ask me anything!
https://blog.sindresorhus.com/answering-anything-678ce5623798
143 stars 32 forks source link

How exactly do you merge PRs? #256

Open nexdrew opened 9 years ago

nexdrew commented 9 years ago

I know you rarely use the "Merge pull request" button in GitHub, and I see you use Tower.

  1. What do you do to keep your commit history so clean?
  2. Is this roughly correct?

    1. Fetch the PR branch locally:

      git fetch origin pull/ID/head:pr/ID

    2. If PR contains N commits, squash them into one:

      git checkout pr/ID git rebase -i HEAD~N

    3. Cherry pick the squashed PR commit into master:

      git checkout master git cherry-pick -e pr/ID

    4. Prepend "Close #ID PR: " to the commit message and complete the cherry pick
    5. Run tests and push master
  3. Do you use a tool (e.g. Tower, apply-pr, or one of your own modules) to make this process easy?

learn-ways-of-the-force

booee commented 8 years ago

:+1: Been wondering this as well

Arkni commented 8 years ago

@nexdrew

Maybe the jQuery Repository Maintainers Guide can help you :)

nexdrew commented 8 years ago

@Arkni Cool, thanks for the reference!

Found similar "rebase and merge --ff-only" strategy here via this SO answer, which can either preserve original commits or squash them before merging. Also aware of using hub and git am -3 as described here, but I haven't actually tried that.

I really just want to know how @sindresorhus does it. Still waiting patiently to find out. :wink:

igauravsehrawat commented 8 years ago

@nexdrew May be he is waiting for your PR to describe it more efficiently. :smiley:

kevva commented 8 years ago

I quite sure @sindresorhus uses https://github.com/github/hub to merge PRs etc.

nexdrew commented 8 years ago

https://github.com/blog/2141-squash-your-commits

@sindresorhus Does this mean you might be tempted to use the green button now? :smiley: