====== 远程分支 ====== 前面章节讲解过 远程仓库 的建立,代码的拉取和推送。 这节内容主要讲解远程仓库的分支和 本地分支的对应关系和操作。 ===== 查看远程分支 ===== 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