不同遥控器上的结帐分支

Checkout branch on different remote

我有一个仓库,除了 origin 之外还有另一个远程 upstream。我可以 git checkout origin/master,但是当我 运行 git checkout upstream/master 时,我得到:

error: pathspec 'upstream/master' did not match any file(s) known to git.

这也不行:

$ 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?

如何像在 origin 远程上一样检查 upstream 远程上的分支?我的 git 版本是 2.1.2.

如果您刚刚添加了遥控器,则需要 fetch 它以便 Git 知道哪些分支可用:

git fetch upstream master

之后你可以做

git checkout upstream/master

没有任何问题。

只需从远程获取引用(这将为上游存储库获取所有分支、提交、引用等)

git fetch upstream

在此之后,签出所需的分支(这会创建该分支的本地副本)

git checkout -b <branchname> --track upstream/<branchname>

现在如果你想在未来拉取这个分支的变化,你需要做的就是

git pull upstream <branchname>

如前所述here,尝试对分支名称进行显式提取:

git fetch upstream master:branch_name

更简洁的方式(我使用git 2.28),你可以说

git fetch upstream

然后

git checkout -b <branch_name> --guess

其中 --guess 标志检查对应于 <branch_name> 的分支是否存在于任何遥控器上并跟踪对应的遥控器 (docs here)。

请按照以下步骤操作,

步骤 01:使用以下添加命令添加新遥控器

git remote add testRemote https://repourl.git

步骤 02:将 url 设置为远程

git remote set-url testRemote https://repourl.git

步骤 03:从新的 repo 中拉取分支

git pull

步骤04:切换到新分支

git checkout branchFromNewremote

然后你可以从当前分支创建新分支