(I'm still not certain under what-if-any conditions "rebase" is a good
idea, for example)
"rebase" is what you want to use to "update" your branch and "stack" your patches on top of whatever other work happened in another branch. This is essentially what you always want to do to update. Assuming you have forked libMesh on GitHub and cloned off of your fork and setup an "upstream" remote like it says to do here: https://help.github.com/articles/fork-a-repo this is what I do to update a branch I'm currently working on (ie I have a few committed patches in that branch)
git fetch upstream
git rebase upstream/master
That will take any of my committed patches in my current branch and "stack" them on top of any work that has been committed to the main libMesh branch. If there are any conflicts I can resolve them on the spot.