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