【问题标题】:How do I checkout a feature with git?如何使用 git 签出功能?
【发布时间】:2013-01-17 01:13:35
【问题描述】:

几周前我用 git 创建了一个功能,并做了一些工作,但不得不停下来。现在我想重新开始工作,但每次我使用git branch -a 来获取可用分支的名称时,我都可以看到它

remotes/origin/feature/upgrade-free-premium

但是当我运行git checkout upgrade-free-premium 时,我收到以下错误。

error: pathspec 'upgrade-free-premium' did not match any file(s) known to git.

有人可以帮我解决这个问题吗?

【问题讨论】:

  • git checkout origin/upgrade-free-premium ?
  • Michael 是对的,您需要检查远程分支。但是正确的命令大概是git checkout -b upgrade-free-premium origin/feature/upgrade-free-premium
  • 感谢@Luigi,这成功了 git checkout -b upgrade-free-premium origin/feature/upgrade-free-premium

标签: git gitlab


【解决方案1】:

试试这个:

git checkout -b upgrade-free-premium origin/feature/upgrade-free-premium

在您的情况下,分支是远程分支。您需要指定要从哪个分支结帐:因此正确的分支名称是origin/feature/upgrade-free-premium。这个,因为其他origin可以有相同的分支名,所以需要指定全名。

-b 是创建本地分支以跟踪远程分支所必需的。

【讨论】:

    【解决方案2】:

    您的分支名为feature/upgrade-free-premium('/' 可以是分支名称的一部分)。

    改为运行git checkout feature/upgrade-free-premium

    【讨论】:

    • checkout 将接受仅存在于 origin 的分支名称,并将为您创建同名的本地跟踪分支。至少在 git 1.8.0 中,上面会输出 Branch feature/upgrade-free-premium set up to track remote branch feature/upgrade-free-premium from origin. Switched to a new branch 'feature/upgrade-free-premium'
    • 该分支是否确实存在于您的远程仓库中?我唯一能想到的是远程仓库由于某种原因搞砸了。
    • 是:branch -a 显示远程分支,如果我不指定 remotes/origin/branch-name 它不会签出。此外,如果您不指定-b,则不会创建本地分支。
    • 看起来运行这个命令可以解决问题并从远程服务器git checkout -b upgrade-free-premium origin/feature/upgrade-free-premium创建一个本地分支
    【解决方案3】:

    我假设你的特性分支来自开发 1. git checkout 开发 2.git拉 3.git结账 4.git拉

    【讨论】:

    • 这其实是一条评论
    【解决方案4】:

    我遇到了同样的问题,我通过先执行git pull 然后执行git checkout <feature> 解决了它:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-18
      • 2015-06-03
      • 2021-05-28
      • 1970-01-01
      • 2021-08-28
      • 2022-11-05
      • 1970-01-01
      • 2016-01-25
      相关资源
      最近更新 更多