您的位置:首页 > 其它

git之学习要点:远程分支与衍合

2012-09-22 19:21 435 查看

1.远程分支

先看图,不说话





git fetch origin 之后……



注意: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
pull
Git 会自行推断。

$ 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



它的原理是: 回到两个分支最近的共同祖先C2,生成一系列文件补丁,放在C4后面(master的后面),得到(C3'),以及experiment分支。

例子:

$ git rebase --onto master server client



它的原理是:首先找到server client共同的节点c3,将C3到Client的C8,C9 rebase……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: