<div dir="ltr"><div dir="ltr">Am Do., 11. Juli 2019 um 14:32 Uhr schrieb Bryan Richter <<a href="mailto:b@chreekat.net">b@chreekat.net</a>>:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">[...] When references to commits (in emails etc.) get invalidated,<br>
it adds confusion and extra work. Seeing this happen is what led me to<br>
wonder why people even prefer this strategy.<br></blockquote><div><br></div><div>I think there is a misunderstanding here: You never ever force-push rebased commits to a public repo, this would indeed change commit hashes and annoy all your collaborators like hell. In a rebase-only workflow you rebase locally, pushing your then fast-forward-only merge to the public repo. You can even disable force-pushed on the receiving side, an that's what is normally done (well, not on GitHub...).</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">[...] One final thing I like about merges is conflict resolution. Resolving<br>
conflicts via rebase is something I get wrong 40% of the time. It's<br>
hard. Even resolving a conflict during a merge is hard, but it's<br>
easier. </blockquote><div><br></div><div>Hmmm, I don't see a difference with conflict resolution in both cases, the work involved is equivalent.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Plus, the eventual merge commit keeps a record of the<br>
resolution! (I only learned this recently, since `git log` doesn't<br>
show it by default.) Keeping a public record of how a conflict was<br>
resolved seems like a huge benefit. [...]<br></blockquote><div><br></div><div>To me it is quite the opposite: In a collaborative environment, I don't care even the tiniest bit about how somebody resolved the conflicts of his branch: This is a technical artifact about when the branch was made and when it is merged.</div></div></div>