目录

远程分支

前面章节讲解过 远程仓库 的建立,代码的拉取和推送。 这节内容主要讲解远程仓库的分支和 本地分支的对应关系和操作。

查看远程分支

git ls-remote 远程分支完整列表
git remote show (remote) 获得具体远程分支的详细信息

拉取

注意:git fetch origin/master 后。本地不会建立 “可编辑”副本。

跟踪分支

从远程跟踪分支检出一个本地分支 会自动创建一个叫做“跟踪分支”(本地分支,只是明确了跟踪哪个远程分支)跟踪分支上 输入 git pull 会自动合并远程分支的代码。

创建跟踪分支的快捷操作:

$ git checkout --track origin/serverfix
Branch serverfix set up to track remote branch serverfix from origin.
Switched to a new branch 'serverfix'

(举例:新克隆一个仓库,不包含某个分支。然后创建跟踪)

创建不同名字的跟踪分支:

$ git checkout -b sf origin/serverfix
Branch sf set up to track remote branch serverfix from origin.
Switched to a new branch 'sf'

设置当前分支跟踪 一个指定的远程分支:
(比如你的的代码是拷贝过来的,里面有不准确的跟踪信息)

$ git branch -u origin/serverfix
Branch serverfix set up to track remote branch serverfix from origin.

将所有的本地分支列出来并且包含更多的信息,如每一个分支正在跟踪哪个远程分支与本地分支是否是领先、落后或是都有

$ git branch -vv
  iss53     7e424c3 [origin/iss53: ahead 2] forgot the brackets
  master    1ae2a45 [origin/master] deploying index fix
* serverfix f8674d9 [teamone/server-fix-good: ahead 3, behind 1] this should do it
  testing   5ea463a trying something new

注意这只是最后一次 fetch 后的结果。要想获取最新结果。需要

$ git fetch --all
git branch -vv

拉取:git fetch 获取数据的唯一方式,只是获取并不合并。
拉取并合并:git pull 不但获取同时合并。

删除远程分支

$ git push origin --delete serverfix
To https://github.com/schacon/simplegit
 - [deleted]         serverfix

删除后执行 git ls-remote

修改远程分支

git remote set-url origin url.....

推送

git push (remote) (branch)
git push origin serverfix:serverfix

推送到命名不同的分支上

git push origin serverfix:awesomebranch