To track a upstream branch from a local branch we need to pass <repository> and <refspec> to --set-upstream (in case of git push) or to --set-upstream-to (in case of git branch). In most cases, users track the upstream branch with the same name as the local branch they are currently on. For example, users most of the time do 'git push <repository> <current_branch_refspec>'. So, it would be great if 'git push -u' by default do this. This patch series address this. The patches of this patch-set set some default values for <repository> and <refspec> if they are not given. It first tries to get the value of <repository> from 'branch.<current_branch>.remote'. If not then it will set the value of <repository> as 'origin'. <refspec>'s value would be the short name of the current branch. The first patch implements it for push command. However, before moving to the 'git branch' part, it would be great to have discussions about the proposed changes in this patch and whether the current changes are the best way to address it or not. Abhradeep Chakraborty (1): push: make '-u' have default arguments Documentation/git-push.txt | 6 +++++ builtin/push.c | 48 ++++++++++++++++++++++++++++---------- t/t5523-push-upstream.sh | 11 +++++++++ 3 files changed, 53 insertions(+), 12 deletions(-) -- 2.17.1