git 分支未结清,但结帐有效



在我的远程仓库上创建了一个新分支。在我的工作目录(在主分支上(的 GitBash 中,我键入 git remote updategit pull 。据我了解git remote update将更新所有设置为跟踪远程分支的分支,如下所述:"git 远程更新"、"git fetch"和"git pull"有什么区别?

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

致命:模棱两可的参数"newBranch":未知修订或路径不在 工作树。

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

谁能向我解释这种行为?

正如您提到的,您没有分支"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"的分支,但在结帐后会显示

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

致命:模棱两可的参数"newBranch":未知修订版或路径不在工作树中。

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

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

最新更新