问题
I have a repo that has another remote upstream besides origin. I can do git checkout origin/master, but when I run git checkout upstream/master, I get:
error: pathspec 'upstream/master' did not match any file(s) known to git.
This does not work either:
$ git fetch upstream
From https://github.com/getsentry/sentry
* branch HEAD -> FETCH_HEAD
$ git co -b asdf --track upstream/master
fatal: Cannot update paths and switch to branch 'asdf' at the same time.
Did you intend to checkout 'upstream/master' which can not be resolved as commit?
How to check out branches on upstream remote as I do on origin remote? My git version is 2.1.2.
回答1:
Just fetch the refs from the remote (this will fetch all branch, commit, refs etc for the upstream repo)
git fetch upstream
After this, checkout the needed branch (this creates a local copy of the branch)
git checkout -b <branchname> --track upstream/<branchname>
Now if you want to pull the changes in this branch in future, all you need to do is
git pull upstream <branchname>
As mentioned here, try doing an explicit fetch on the branch name:
git fetch upstream master:branch_name
回答2:
If you just added the remote, you'll need to fetch it so that Git knows which branches are available:
git fetch upstream master
After this you can do
git checkout upstream/master
without any issues.
来源:https://stackoverflow.com/questions/30862558/checkout-branch-on-different-remote