<div dir="ltr"><div>(cc grass-dev, to avoid that it gets lost)<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 7, 2020 at 3:24 PM Vaclav Petras <<a href="mailto:notifications@github.com">notifications@github.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><p></p>
<p>Fortunately, having <i>Squash and merge</i> saves the day here. Couple notes:</p>
<ol>
<li>If you end up doing <code>git pull</code> instead of <code>git rebase</code>, you can try setting <code>git config --global pull.rebase true</code> for <code>git pull</code> to be automatically turned into <code>git pull --rebase</code>. I don't have experience with how this plays out with the upstream+fork setup, so you need to test. However, the point here is that Git won't do merge unless you ask it to do it, well, <code>git pull</code> is one of the ways you are telling Git to do merge, although it does not seem that way. I recommend the <a href="https://git-man-page-generator.lokaltog.net/#aa9b72bf4fa689dc39dc9d297f35142d" rel="nofollow" target="_blank">git man page generator</a> to mediate the pain from this.</li>
<li><i>Squash and merge</i> allows editing the commit message.</li>
<li>Unless you do or already did something to fix it, your releasebranch_7_8 (i.e., releasebranch_7_8 in the neteler fork) still contains all this and you need to clean it before you can backport again. You need to trash (assuming it's trash) what you have in your local releasebranch_7_8 branch and force it to be whatever the upstream state of the branch is. The <code>git reset</code> command should do the trick with these parameters: <code>git reset --hard upstream/releasebranch_7_8</code> (<a href="https://stackoverflow.com/a/9210705/574907" rel="nofollow" target="_blank">related SO answer</a>). You can confirm by looking at commits on GitHub and locally with <code>git log</code>.</li>
<li>If you are doing a PR to update any branch, you need to do that from a new dedicated branch in your fork. If you don't do that, your branch (here: neteler:releasebranch_7_8) will diverge from the upstream one (here: OSGeo:releasebranch_7_8) and you will end up doing steps in number 3 in order to stop propagating the unwanted commits. This is due to the difference between doing push directly to upstream (<code>git push upstream releasebranch_7_8</code>) which just pushes local commit(s) you have and PR workflow where a new commit is always created in the upstream and thus you don't have it locally.</li>
</ol>
<p>As I mentioned previously on mailing list, note that the <a href="https://git-man-page-generator.lokaltog.net/" rel="nofollow" target="_blank">randomly generated Git man pages</a> actually need to explicitly say that they are not the real documentation.</p>

<p style="font-size:small;color:rgb(102,102,102)">—<br>Context: <a href="https://github.com/OSGeo/grass/pull/484#issuecomment-610384581" target="_blank">view it on GitHub (#484)</a></p></blockquote><div> </div></div></div>