开发过程中经常用到从master分支copy一个开发分支,下面我们就用命令行完成这个操作

1. 切换到被copy的分支(master),并且从远端拉取最新版本

1
2
3
$git checkout master

$git pull

其中git pull 标准或完整的命令是git pull remote_repository_name branch_name,他们执行效果都一样所以省略写。

2. 从当前分支拉copy开发分支

1
2
3
$git checkout -b dev

Switched to a new branch 'dev'

3. 把新建的分支push到远端

1
$git push origin dev

4. 拉取远端分支

1
$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

If you wish to set tracking information for this branch you can do so with:

git branch –set-upstream-to=origin/ dev

经过验证,当前的分支并没有和本地分支关联,根据提示进行下一步:

5. 关联

1
$git branch --set-upstream-to=origin/dev

注意:这里branch之后都是没有空格的,如果有空格则是错误命令。

看评论这里有歧义,branch命令后面没有空格是说–set-upstream-to=origin/dev 这一窜命令都是连续的,中间没有空格。

6. 再次拉取 验证

1
$git pull

OK 到此搞定 结束!

1、从远程拉取分支到本地(当远程已经有分支的时候可以这样用)

1
git checkout -b 本地分支名x origin/远程分支名x

2、提交本地test分支作为远程的test分支(合并分支后可以用)

1
git push origin test:test   // 提交本地test分支 作为远程的test分支

7. 总结

其实在git中要注意如下几点:

第一点就是分支:

git因分支而强大,所以要理解git中的分支,我们在一个远程服务下可以拉多个分支,比如生产主分支、测试分支、每个人的开发分支。

第二点就是本地和远程:

当我们在本地建了一个新分支有,还要把新分支推到远程也就是在远程建立一样的一个分支。所以我们在本地和远程建立分支后还要把他们关联起来,这样才有意义!!!

第三点 git远程服务和git远程分支:

某一个或某几个分支是在一个服务下的,就好比A项目在远程的服务是a那么在a服务下我们可以创建 master、test、dev多个测试分支。其实一个远程服务就是一个project因为在github或gitlab都是创建project。

第四点 当我们从master分支上拉开发分支:

我们在自己的开发分支上pull的时候会吧别人提交到master分支的代码回pull下来,而push的时候还是提交到了自己的开发分支,除非你把自己的开发分支合并到了master分支上。