Checkout branch on different remote

拈花ヽ惹草 提交于 2019-12-21 03:29:12

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!