how to address Git error “the requested upstream b

2020-06-01 05:01发布

I am attempting to follow some steps to contribute to a repository on GitHub and one of the steps is not working. The steps are here: https://github.com/wdbm/qTox/blob/master/CONTRIBUTING.md#how-to-open-a-pull-request.

I fork the repository on GitHub.

I clone the repository:

git clone https://github.com/<YOUR_USER>/qTox.git

I access the directory of the local repository:

cd qTox

I add the upstream remote in order to be able to fetch from the upstream repository:

git remote add upstream https://github.com/qTox/qTox.git

I attempt to point the local master branch to the upstream repository:

git branch master --set-upstream-to=upstream/master

This command fails with the following error message:

error: the requested upstream branch 'upstream/master' does not exist
hint: 
hint: If you are planning on basing your work on an upstream
hint: branch that already exists at the remote, you may need to
hint: run "git fetch" to retrieve it.
hint: 
hint: If you are planning to push out a new local branch that
hint: will track its remote counterpart, you may want to use
hint: "git push -u" to set the upstream config as you push.

How should I address this error? I am using Git 2.9.3.

标签: git
3条回答
家丑人穷心不美
2楼-- · 2020-06-01 05:35

Try this

git branch -u git branch --set-upstream-to=<remote>/<remote branch> branch
查看更多
Animai°情兽
3楼-- · 2020-06-01 05:44

git fetch upstream master:master: this work only when you are not on master. If you are on master, a simple git fetch upstream is enough.

Then you can link your local master to the remote tracking branch upstream/master (which has just been fetched)

git branch -u upstream/master master

Then you can use git pull to update master.
Again, if you are not on master, then yes, git fetch upstream master:master will work.


Luh_ mentions also a typo issue in the refspec: see "git fetch doesn't fetch all branches".

查看更多
Deceive 欺骗
4楼-- · 2020-06-01 06:01

I had a similar problem, however git fetch didn't solve my problem. Also, in my case I found that git config --get remote.origin.fetch didn't return anything while it is suppose to

My problem was that there was a typo in the .git/config file in the fetch line of the respective remote block (probably something I added by mistake previously). So, check if your remote entry in the .git/config file is correct, e.g.:

[remote "origin"]
    url = https://[server]/[user or organization]/[repo].git
    fetch = +refs/heads/*:refs/remotes/origin/*

You can also directly remove and re-add the remote entry

查看更多
登录 后发表回答