在开发中,我们可能要做这些工作,从master分支拉一个开发分支dev ,开发、单测完合并到test分支测试测试完了上线
1、从master分支拉一个新dev分支到本地,在将新拉的本地分支和远程分支关联起来
2、将dev分支合到test分支或master分支
3、从远程拉取已存在分支到本地
4、提交本地分支作为远程分支(合并分支后可以用)
5、删除本地分支、远程分支
ok 下面我们从这5个方面来看看:
1、从master分支拉一个新dev分支到本地,在将新拉的本地分支和远程分支关联起来
1.1.从远程master分支拉取一个dev分支到本地,并将这个新本地dev分支push到远程,在将本地dev分支和远程dev分支关联起来
1.1.1. 切换到被copy的分支(master),并且从远端拉取最新版本
$git checkout master
$git pull
1.1.2. 从当前分支拉copy开发分支
$git checkout -b dev
Switched to a new branch 'dev'
1.1.3. 把新建的分支push到远端
$git push origin dev
1.1.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
经过验证,当前的分支并没有和本地分支关联,根据提示进行下一步:
1.1.5. 关联
$git branch --set-upstream-to=origin/dev
注意:这里branch之后都是没有空格的,如果有空格则是错误命令
1.1.6. 再次拉取 验证
$git pull
OK 到此搞定 结束!
/*****************************************************/
1.1.7、从远程拉取分支到本地(当远程已经有分支的时候可以这样用)
git checkout -b 本地分支名x origin/远程分支名x
1.1.8、提交本地test分支作为远程的test分支(合并分支后可以用)
git push origin test:test // 提交本地test分支 作为远程的test分支
2、就是将dev分支合并到test分支(开发完,单测后将dev分支代码合并到test分支提测)
分支合并步骤(将dev分支合并到test分支)
2.1.分支切换: git checkout test
将本地从dev分支切换到test分支
2.2.将本地test分支更新为最新: git pull
将本地test分支从远程跟新为最新
2.3.分支合并: git merge dev
将本地dev分支合并到本地test分支
2.4.提交本地test分支作为远程的test分支: git push origin test:test
在我们合并之前把本地test分支从远程更新为了最新的代码版本,所以这时如果没有人提交新代码到test远程分支,则test本地代码和远程代码是一样的,这时我们在合并本地dev的代码到本地test,这时本地test的代码相比远程就多dev中开发的代码,所以这时我们提交本地test分支作为远程的test分支是正常。
3、从远程拉取分支到本地(当远程已经有分支的时候可以这样用)
git checkout -b 本地分支名x origin/远程分支名x
4、提交本地test分支作为远程的test分支(合并分支后可以用)
git push origin test:test // 提交本地test分支 作为远程的test分支
5、删除本地分支、远程分支
5.1.删除本地分支 git branch -d branchName
强制删除本地分支 git branch -D branchName
注意:在删除本地分支的时候要切换到其他分支,在去删除要删除的分支哦……你在要删除的分支下是没法删除该分支的,因为删除了你就没地方去了!!!
5.2.查看本地 -v 和远程分支 -a。前面带*号的代表你当前工作目录所处的分支
$ git branch -v
$ git branch -a
5.3.删除远程版本
git push origin :br-1.0.0
5.4.删除远程分支
5.4.1.在Git v1.7.0 之后,可以使用这种语法删除远程分支:
$ git push origin --delete branchName
5.4.2.可以使用这种语法,推送一个空分支到远程分支,其实就相当于删除远程分支:
$ git push origin :branchName
这里注意 在origin 后面也就是":"冒号前面是有一个空格的,也就是吧一个空分支push到远程,这样就相当于删除了远程分支。
分支合并的流程,其中要注意在合并之前一定要pull 为最新版本,不然会把代码覆盖掉!
6、git合并遇到冲突时,怎么取消当前合并。
当合并分支时遇到错误或者冲突,分支旁边会多出“|MERGING”这个东西
有这个状态存在时,会导致后面想要再合并的时候提示如下:
所以需要先取消这次合并,使用“git merge --abort”命令
7、查看当前git分支是基于哪个分支创建的
可以通过查看提交日志来找到所基于的分支,即通过git log
命令,不过需要借助一些命令选项。你可以使用--decorate
选项来在提交日志中显示分支信息,以及--graph
选项以ASCII图形形式显示分支历史,当然你还需要--all
选项来保证所有的分支信息都显示出来:
即
git log --graph --all --decorate
或者
git log --graph --all --decorate=short
然后你可以在结果中找到当前分支,并顺着该分支的线找到其父分支。