当需要同别人共享某个分支上的工作成果时,就要把它推送到一个具有写权限的远程仓库。你的本地分支并不会自动同步到远程仓库,必须要显式地推送那些你想要与别人共享的分支。这样一来,你可以使用私有分支做一些不想与别人共享的工作,而仅仅推送那些需要与别人协作的主题分支。
假设你有一个叫做modb
的分支需要与其他人协作开发,你可以执行
git push (remote)(branch)
$git push origin modb
上述命令实际上是一个简化的写法。Git会自动把分支名称modb
扩展成
refs/heads/modb:refs/head/modb
上述操作的含义是:把本地的modb分支推送到远程modb分支上,以更新远程数据
refs/head
的含义以后再做讲解,一般情况下可以省略不写。也就是说你可以执行
git push origin modb:modb
这条命令与之前的命令是等价的。如果你不想把远程分支命名为modb,可以写成modb:othername,即把你的分支推送到远程的othername分支上。
注意:当获取服务器上本地还没有的新的远程跟踪分支时,Git并不会自动提供给你该分支的本地可编辑副本。换句话说,在上述例子中,在本地就不会自动创建新的modb分支,而只是拥有了指向origin/modb的指针,不能直接做出修改。
要把该分支上的工作合并到你的当前工作分支,可以执行
git merge origin/modb
如果你想要创建自己的本地modb分支以便开展工作,可以执行
git checkout -b modb origin/modb