> <i>GitHub deals well with force-pushing to a PR branch, ie it doesn’t lose the comments on the previous commits, etc</i><p>This has not been my experience at all, it seems to loose non-line comments always, and line comments sometimes.<p>---<p>In any case, I've been doing a lot of work on the Rust language recently, and there is an integration bot ("bors") which detects `r+` comments on the last comment on a pull-request, then runs 13 different configurations of the full test suite (4 platforms, 2 architectures, optimisations on/off, with/without valgrind; although not all combinations of these). If (and only if) all 13 test runs pass, the bot automatically pushes the commits to master.<p>(Almost) all commits go through bors, with increasingly less common pushes straight to master to get the test suite to pass again after some breakage. (The test suite used to only with 3 configurations for each pull request, so breakage occurred semi-often.)<p>(An example, <a href="https://github.com/mozilla/rust/pull/7693" rel="nofollow">https://github.com/mozilla/rust/pull/7693</a>)<p>When it works, it is really nice; get someone to review, they approve it and the whole process is managed from there, no mistakes possible. (However, apparently the GH api is unreliable, so bors has moments of madness.)