On Thu, May 11, 2017 at 02:41:41PM -0500, Robert Dailey wrote: > What I want (as a default) is for `git pull` to pull from the > same-named branch on the upstream repository, but for `git push` to > push to the same-named branch on the fork repository. However to > override this behavior for when I want to push directly to upstream > repo, I should be able to use an explicit `git push origin my-topic` > (but `git push` by default will act as `git push fork my-topic`). I think you want: [push] default = current [remote] pushDefault = myfork to make "git push" do what you want. And then generally have branches mark their counterparts on "origin" (which you can do either at creation time, or probably by using "git push -u origin my-topic" when you push them). This is similar to what I do for my git.git workflow, though I usually have origin/master as the branch's upstream. I.e., I'd create them with: git checkout -b my-topic origin And then rebasing always happens on top of master (because "origin" doesn't even have my topic branch at all). If I want to compare with what I've pushed to my fork, I'd use "@{push}". -Peff