ama
ama copied to clipboard
How exactly do you merge PRs?
I know you rarely use the "Merge pull request" button in GitHub, and I see you use Tower.
- What do you do to keep your commit history so clean?
- Is this roughly correct?
-
Fetch the PR branch locally:
git fetch origin pull/ID/head:pr/ID -
If PR contains N commits, squash them into one:
git checkout pr/IDgit rebase -i HEAD~N -
Cherry pick the squashed PR commit into master:
git checkout mastergit cherry-pick -e pr/ID -
Prepend "Close #ID PR: " to the commit message and complete the cherry pick
-
Run tests and push master
-
- Do you use a tool (e.g. Tower, apply-pr, or one of your own modules) to make this process easy?

:+1: Been wondering this as well
@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:
@nexdrew May be he is waiting for your PR to describe it more efficiently. :smiley:
I quite sure @sindresorhus uses https://github.com/github/hub to merge PRs etc.
https://github.com/blog/2141-squash-your-commits
@sindresorhus Does this mean you might be tempted to use the green button now? :smiley: