We are currently working on adding "--set-upstream <remote> <branch>" to pull, that will work like "push --set-upstream <remote> <branch>" The main usage should be "git pull --set-upstream <remote> <branch>" However: * <branch> could be a refspec like "refs/heads/*" * If there is an error such as invalid URL or unreachable host we don't want to edit the config It makes more sense to us to implement the "--set-upstream" logic in git fetch which would let us test the remote and manage when called with a refspec. As a side effect: it will add the "--set-upstream" argument to fetch. Essentialy we see 3 options: 1- add the "--set-upstream" argument directly in builtin/pull.c it will make it harder to parse the refspec and test the remote 2- add the "--set-upstream" as a visible argument of fetch as fetch --set-upstream could be useful 3- add the "--set-upstream" as a hidden argument of fetch Option 2 seems the best choice to us, any suggestion? Thanks in advance. Corentin BOMPARD, Nathan BERBEZIER, Pablo CHABANNE.