====== 远程分支 ======
前面章节讲解过 远程仓库 的建立,代码的拉取和推送。
这节内容主要讲解远程仓库的分支和 本地分支的对应关系和操作。
===== 查看远程分支 =====
git ls-remote 远程分支完整列表\\
git remote show (remote) 获得具体远程分支的详细信息\\
===== 拉取 =====
注意:git fetch origin/master 后。本地不会建立 “可编辑”副本。
* 不会和自己的 master 合并。
* origin/master 只读不可移动。origin/master 不会移动。是远程状态的引用。除非 fetch 新数据时
* 如果是初次fetch 可以用 git checkout -b master origin/master 来基于远程跟踪分支建立本地分支
* 或者分fetch 后再 checkout 同名分支也可以
===== 跟踪分支 =====
从远程跟踪分支检出一个本地分支 会自动创建一个叫做“跟踪分支”(本地分支,只是明确了跟踪哪个远程分支)跟踪分支上 输入 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.....
===== 推送 =====
* 分享一个分支。注意是分享一个分支。而不是整个版本库。
* 不会自动同步必须用命令显示的推送。
* 把不想推送的内容放到私人分支上。
* 如何来整理分支,下面的章节会提到通过rebase 变基,向开源项目推送自己的代码。
git push (remote) (branch)
git push origin serverfix:serverfix
推送到命名不同的分支上
git push origin serverfix:awesomebranch