github remotes/origin prefixes
在你的列表中,“BZ9”和“master”都是你可以自由移动、更新和删除的本地分支。当你处于其中一个分支并进行提交时,该分支会更新为指向你最新的提交。
然而,当你输入git branch -a
时,出现的带有remotes/origin前缀的名称就像分支一样,但你可以将它们视为“只读”。这些分支你无法直接控制,它们在你进行获取操作时会自动设置,并且直到你再次获取(或拉取)它们才会改变。
这是因为与你的本地分支不同,远程origin分支跟踪你从中拉取代码的服务器上的远程开发。
例如,"remotes/origin/junit1"表示:“上次git从远程origin仓库获取代码时,那里有一个名为junit1的分支,该分支指向这个提交哈希”。
你可以像任何其他分支一样检出该远程分支,但是当你向该分支提交时,分支指针不会更新,因为它不是用于跟踪你的本地进度,而是用于跟踪远程仓库的进度。
你的本地进度由你的本地分支跟踪,你可以根据需要自由地创建、更新和删除它们。
同样地,如果有人从你的仓库克隆,那么当他们从你那里获取代码时,他们会从你那里得到两个远程分支:"remotes/origin/BZ9"和"remotes/origin/master"。换句话说,你的本地分支成为了下游用户的远程origin分支。
因此,你的远程origin分支也只是你上游仓库本地分支的只读副本。