Hi, After thinking a bit more about, I think the current 'upstream' branch serves most of the purposes; actually tracks an upstream branch; makes sense to rebase onto that, makes sense to fetch from that remote, merge, and pull. The only job it doesn't make sense to use the 'upstream' branch for is to push, so here's a new notion of 'downstream' branch. These patches are only exploratory, 'git branch -v' doesn't show these branches, there's no @{downstream}, no documentation, and there isn't even a way to set it. If there's no downstream branch configured, nothing changes. Felipe Contreras (3): remote: don't override default if cur head remote is '.' pull: trivial cleanups push: add separate 'downstream' branch builtin/push.c | 65 ++++++++++++++++++++++++++++++++++++---------------------- git-pull.sh | 15 +++++++++----- remote.c | 10 ++++++--- remote.h | 3 +++ 4 files changed, 61 insertions(+), 32 deletions(-) -- 1.8.3.rc1.579.g184e698 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html