原文地址:http://www.cnblogs.com/lingear/p/6062093.html
开发过程中经常用到从master分支copy一个开发分支,下面我们就用命令行完成这个操作:
- 切换到被copy的分支(master),并且从远端拉取最新版本
$git checkout master
$git pull
- 从当前分支拉copy开发分支
$git checkout -b dev
Switched to a new branch 'dev'
- 把新建的分支push到远端
$git push origin dev
- 拉取远端分支
$git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> dev
经过验证,当前的分支并没有和本地分支关联,根据提示进行下一步:
- 关联
$git branch --set-upstream-to=origin/dev
注意:这里branch之后都是没有空格的,如果有空格则是错误命令
- 再次拉取 验证
$git pull
OK 到此搞定 结束!
/*******************************************/
1、从远程拉取分支到本地(当远程已经有分支的时候可以这样用)
[html] view plain copy
git checkout -b 本地分支名x origin/远程分支名x
2、提交本地test分支作为远程的test分支(合并分支后可以用)
git push origin test:test // 提交本地test分支 作为远程的test分支
简单总结:
其实在git中要注意如下几点:
第一点就是分支,git因分支而强大,所以要理解git中的分支,我们在一个远程服务下可以拉多个分支,比如生产主分支、测试分支、每个人的开发分支。
第二点就是本地和远程,当我们在本地建了一个新分支有,还要把新分支推到远程也就是在远程建立一样的一个分支。所以我们在本地和远程建立分支后还要把他们关联起来,这样才有意义!!!
第三点 git远程服务和git远程分支,某一个或某几个分支是在一个服务下的,就好比A项目在远程的服务是a那么在a服务下我们可以创建 master、test、dev多个测试分支。其实一个远程服务就是一个project因为在github或gitlab都是创建project。
第四点 当我们从master分支上拉开发分支,我们在自己的开发分支上pull的时候会吧别人提交到master分支的代码回pull下来,而push的时候还是提交到了自己的开发分支,除非你把自己的开发分支合并到了master分支上。