先说解决办法: 执行 git fetch
在GitHub网页上直接新建了一个新的branch,
但是在本地gitbash上用git branch -r 并看不到远程的分支。
git是分布式的这个设计思想。每个git版本库彼此是独立的,默认是没有通知机制的,任意一个版本库更新了,其他人压根不知道,git也不会主动联网去获取更新——因为Linus大神设计git就是为了避免SVN/CVS必须联网才能使用的诟病。clone之后,每个人得到的都是完整的一份版本库的拷贝,因此就算中央仓库挂掉了,随便找个人的版本库放上去就能恢复了。
因此git同步版本库一定是手工操作的,对应的命令就是fetch
(本地同步远程)和push
(远程同步本地)。
所以,你想要看到远程分支,必须使用git fetch
获取远程更新之后再看。
别被branch命令输出的origin/branch的名字给误导了,这玩意其实还是本地分支,数据存储在本地.git/目录下,你试试把远程分支干掉了这玩意一定还在。
所以, 远程新建了branch, 要先用命令 git fetch
这下继续 git branch -r
就能看到了
注意: 如果要建立本地branch和远程branch关系。一定要git branch -r
能看到的branch, 不然会报branch不存在的错误。