git checkout branchname无法工作。

3
我已经在Stash仓库创建了一个新项目,并且为这个新项目创建了几个分支。我可以通过Git bash克隆项目,但是当我尝试检出特定分支时,会出现以下错误:
git checkout feature/Project_branch

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

但是如果我使用以下方式,它就可以工作:

git fetch origin

git checkout feature/Project_branch

我曾经使用其他项目进行过检出,而不需要使用 git fetch origin 命令就可以工作,但是在我的新仓库情况下,它会抛出上述错误。

请问有没有人可以帮助我理解,在不使用 git fetch 命令的情况下,是否需要进行任何配置才能直接使用 git checkout 检出分支?


2
小提示:尝试使用 git branch 命令获取可用分支列表。git fetch 命令的要求可能取决于分支的来源。如果分支是在远程创建的(同事、项目的 fork),您可能需要先进行一次 fetch 操作。 - Tomas Votruba
2个回答

1
git fetch 的作用只是将你仓库中没有的信息下载下来。这意味着当你首次尝试切换到 feature/Project_branch 时,你还没有下载它。有两种方法可以获取它:
1 - 在最初的 git clone 中,所有与远程仓库关联的分支都会被下载并在本地 git 仓库中可用。
2 - 如果在你的 git clone 后远程仓库添加了一个新分支,则必须执行 git fetch 或类似操作(如 git pull)才能访问该分支。
发生的情况可能是你想要切换的分支在你最初克隆仓库时没有被创建和推送,这就是为什么你需要进行 git fetch 的原因。
然而,从现在开始,你不需要再运行 git fetch 来在 master 和 feature/Project_branch 之间切换。
注意:git branch 将列出你在本地仓库中拥有的所有分支。

0

我认为您在 Checkout 中缺少了 -t 选项。

请尝试使用以下命令:

$ git checkout -t feature/Project_branch

这将创建一个名为Project_branch的分支,该分支正在跟踪feature/Project_branch


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接