git之学习要点:远程分支与衍合
2012-09-22 19:21
435 查看
1.远程分支
先看图,不说话![](http://img.my.csdn.net/uploads/201209/22/1348313652_3035.png)
![](http://img.my.csdn.net/uploads/201209/22/1348313903_1545.png)
git fetch origin 之后……
![](http://img.my.csdn.net/uploads/201209/22/1348314055_2382.png)
注意:git fetch 命令会更新 remote 索引。
看完图之后,以下语法要搞清楚:
推送本地serverfix -> serverfix(origin): $ git push origin serverfix
通过此语法,你可以把本地分支推送到某个命名不同的远程分支:
若想把远程分支叫作
awesomebranch,可以用:
git push origin serverfix:awesomebranch来推送数据。
接下来,当你的协作者再次从服务器上获取数据时($ git fetch origin),他们将得到一个新的远程分支
origin/serverfix:
值得注意的是,在
fetch操作下载好新的远程分支之后,你仍然无法在本地编辑该远程仓库中的分支。换句话说,在本例中,你不会有一个新的
serverfix分支,
有的只是一个你无法移动的
origin/serverfix指针。
如果要把该内容合并到当前分支,可以运行
git merge origin/serverfix。
如果想要一份自己的
serverfix来开发,可以在远程分支的基础上分化出一个新的分支来:$ git checkout -b serverfix origin/serverfix
(git checkout -b [分支名] [远程名]/[分支名]。)
从远程分支
checkout出来的本地分支,称为跟踪分支(tracking
branch)。
在跟踪分支里输入
git push,
git pullGit 会自行推断。
$ git checkout --track origin/serverfix 相当于$ git checkout -b serverfix origin/serverfix
删除远程分支 git
push [远程名] :[分支名]。
1. gitfetch:相当于是从远程获取最新版本到本地,不会自动merge:gitfetch origin master
2. git
pull:相当于是从远程获取最新版本并merge到本地:git pull origin master
2.衍合:
例子:$ git checkout experiment
$ git rebase master
![](http://img.my.csdn.net/uploads/201209/22/1348312198_4116.png)
它的原理是: 回到两个分支最近的共同祖先C2,生成一系列文件补丁,放在C4后面(master的后面),得到(C3'),以及experiment分支。
例子:
$ git rebase --onto master server client
![](http://img.my.csdn.net/uploads/201209/22/1348313399_2192.png)
它的原理是:首先找到server client共同的节点c3,将C3到Client的C8,C9 rebase……
相关文章推荐
- git学习笔记:分支和远程仓库
- git学习(4)远程库和分支管理
- Git学习笔记(四)——分支管理和远程操作
- git学习——远程分支
- Git学习之本地分支和远程分支关联
- GIT 01 -log diff checkout 远程仓库与分支学习
- git学习笔记(二):分支和远程仓库
- Git 学习笔记--拉取远程分支到本地
- git学习笔记(一):创建和管理远程分支
- 【Git学习笔记】用git pull取回远程仓库某个分支的更新,再与本地的指定分支自动merge【转】
- git学习(2)--- git clone远程项目,创建分支,提交分支
- git学习——远程分支
- Git与GitHub学习笔记(四)合并远程分支
- git学习四(远程分支)
- 【Git学习笔记】用git pull取回远程仓库某个分支的更新,再与本地的指定分支自动merge
- Git学习笔记(二) 远程仓库及分支
- 【Git学习笔记】 git克隆远程项目并创建本地对应分支
- git学习——远程分支
- Git删除远程分支
- 解决Git建立远程分支关联时fatal the current branch master has no upstream branch 问题