2017-06-22 101 views
1

在我的远程存储库上创建了一个新的分支。在我的工作目录(主分支)上的GitBash中,输入git remote updategit pull。据我了解git remote update将更新所有分支机构设置为这里解释追踪远程的: What is the difference between 'git remote update', 'git fetch' and 'git pull'?git分支unkown,但结帐工作

所以,当我键入git diff master newBranch --name-only我希望看到这是在两个分支不同的文件列表。而是我得到了以下错误消息:

fatal: ambiguous argument 'newBranch': unknown revision or path not in the working tree.

但如果我键入git checkout newBranch它工作正常,如果我通过键入git checkout master突然git diff master newBranch --name-only作品完美地切换回主?

任何人都可以向我解释这种行为吗?

回答

1

至于你提到你没有分支“newBranch”的本地副本,所以你需要指定你想从远程这样做的分支标签的DIFF:

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”的分支,但结账后它会。

1

当您第一次键入git diff master newBranch --name-only时,您没有任何本地newBranch分支。因此,它给人的错误:

fatal: ambiguous argument 'newBranch': unknown revision or path not in the working tree.

后来,当你通过git checkout newBranch命令检出到newBranch,创建一个新的本地分支。所以,下次git diff master newBranch --name-only也在工作。

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