先说解决办法: 执行 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不存在的错误。
博客主要围绕Git远程分支同步问题展开。在GitHub网页新建分支后,本地gitbash用git branch -r看不到远程分支。因Git是分布式且无默认通知机制,同步需手工操作。解决办法是执行git fetch获取远程更新,还提醒建立本地与远程分支关系时,要确保能看到远程分支。
1万+





