在开发过程中经常用到从master分支复制一个新分支用来开发,下面分两种情况详细介绍下操作命令:
一、远程没有分支需要新建
1、切换到被复制的分支(这里是master,当然也可以是其它分支),并且从远端拉取最新的版本
$git checkout master
$git pull
2、切换并创建分支
$git checkout -b dev
Switched to a new branch 'dev' //执行结果
3、把新建的分支push到远端
$git push origin dev
4、拉取远端分支
$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
经过验证,当前的分支并没有和本地分支关联,根据提示进行下一步。
5、关联
$git branch --set-upstream-to=origin/dev
注意:branch之后都是没有空格的
6、再次拉取验证
$git pull
OK,至此就搞定了。
二、远程已有分支
1、从远程拉取分支到本地
$git checkout -b 本地分支名 origin/远程分支名
2、提交本地dev分支作为远程的dev分支(合并后分支可用)
$git push origin dev:dev
三、小结
在使用Git的过程中需要注意以下几点:
第一,分支。git因为分支而强大,所以需要理解git中的分支,我们可以在一个远程服务下拉取多个分支,比如:生产分支、测试分支、开发分支等等。
第二,本地和远程。当我们在本地新建了一个分支,还要把新分支推到远程建立一个一样的分支。这时候我们在本地和远程建立分支后还要把他们关联起来,这样才有意义!!!
第三,git远程服务和git远程分支。某一个或某几个分支是在一个服务下的,就好比A项目在远程的服务是a,那么a服务下我们可以创建master、test、dev多个测试分支。其实一个远程服务就是一个project因为在github或gitlab都是创建project。
第四,当我们从master分支上拉取开发分支,我们在自己的开发分支上pull的时候会把别人提交到master分支的代码pull下来,而push的时候还是提交到了自己的开发分支,除非你把自己的开发分支合并到了master分支上。