git branch unkown但结帐工作

时间:2017-06-22 09:41:08

标签: git version-control git-remote

在我的远程存储库上创建了一个新分支。在我的工作目录中的GitBash中(在主分支上),我输入git remote updategit pull。据我所知git remote update将更新所有分支集,以跟踪远程的分支,如下所述: What is the difference between 'git remote update', 'git fetch' and 'git pull'?

因此,当我输入git diff master newBranch --name-only时,我希望看到两个分支中不同的文件列表。但相反,我收到以下错误消息:

  

致命:模棱两可的争论&newBranch':未知的修订或路径不在   工作树。

但是如果我输入git checkout newBranch它就可以正常工作,如果我通过突然git checkout master突然git diff master newBranch --name-only输入PrintingFactory切换回主人,那就完美了吗?

有人可以向我解释这种行为吗?

2 个答案:

答案 0 :(得分:1)

第一次输入git diff master newBranch --name-only时,您没有任何本地newBranch分支。所以,它给出了错误:

  

致命:含糊不清的论点&newBranch':未知修订版或路径不在工作树中。

稍后当您通过git checkout newBranch命令检出 newBranch 时,会创建一个新的本地分支。所以,下次git diff master newBranch --name-only也在运作。

注意: git checkout newBranch实际上找到了本地newBranch分支,如果找到则切换到分支。但如果找不到,则在远程分支列表中找到(如果找到),然后创建一个新的本地newBranch分支,跟踪远程newBranch分支。

答案 1 :(得分:1)

正如您所提到的,您没有分支“newBranch”的本地副本,因此您需要指定要使用远程分支标记进行差异,如下所示:

git diff origin/master origin/newBranch --name-only

或假设您在本地拥有主人:

git diff master origin/newBranch --name-only

检查您在本地拥有的分支:

git branch -l

git branch

检查远程分支

git branch -r

检查所有分支:

git branch -a

因此,在您结帐后这对您有用,因为git会自动创建一个名为newBranch的本地分支。因此,在您结账之前git branch不会显示一个名为“newBranch”的分支,但在结账后它会显示。

相关问题