赞
踩
代码添加到一定阶段,就需要创建分支管理,比如新加一个功能,但有想功能能不影响主线代码的开发,就可以将主线开一条分支,分支的功能和主线一模一样,在分支上新加和测试功能,功能添加成功后,就可以将该功能的分支合并到主线上面去。也可以将分支创建成稳定版,测试版等多条分支的基本功能可以同步开发。还可以为修复bug创建分支,代码主干有bug,但修复时间长,主干还要继续开发。这时就在主干开出一条bug分支,主干照常添加功能,bug分支则修复bug,等修复完之后,将bug分支合并到主干上面就可以了。
一个项目,不同的人负责不同的分支功能,由一个管理员负责合并分支。
分支可以将当前开发的代码根据开发项目的不同划分成的不同版本,在分支中开发,不会影响主干master的代码也不影响其他分支的进行,在开发一个新功能时,应在一个新的分支上开发,调试完成后,确认没有问题,可以将该分支的新功能合并到主干master中。在分支开发中,为了不影响进度,也可以为分支更新。比如主干master添加了一项大众的功能或者修补了某个漏洞,也可以通过分支的命令,将主干的改动同步到分支中,分支和主干是各自独立的,分支的代码也可以同步到主干中。
命令:git branch branchname
创建分支很简单,仅仅输入git branch + 分支名就可以,代码版本中的所有分支可以通过git branch来查看,查看该代码库中所有本地和远程的分支可以通过命令git branch -a来查看。
命令:git branch -a
ghost@ghost-machine:~/project$ git branch -a
* master
v1.1
v1.2
v1.3
remotes/origin/master
ghost@ghost-machine:~/project$
git checkout branchname
git checkout有很多功能,其中在后面输入分支名后就是检出git分支功能,也就是跳转功能。
ghost@ghost-machine:~/project$ git checkout v1.1
切换到分支 'v1.1'
ghost@ghost-machine:~/project$ git branch
master
* v1.1
v1.2
v1.3
ghost@ghost-machine:~/project$
如果分支是新建的,在跳转到该分支之后,分支的进度与主干master一样,跳转之后可以在该分支修改代码,添加功能、修复漏洞和测试,此时修改后的代码仅仅在该分支有效,与主干无关,代码修改不影响主干,如果主干需要改动,也可以通过git checkout master命令跳回主干,主干的代码和跳到分支之前的一样,分支上的改动还原回主干的代码。其实主干就是一个命名为master的分支,在git clone的默认状态下,git会默认下载主干master分支。
命令:git branch -m old_branch_name new_branch_name
修改名字的效果如下。
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git branch
* master
v1.1
v1.2
v1.3
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git branch -m v1.3 vtest
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git branch
* master
v1.1
v1.2
vtest
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$
命令:git branch -d branch_name
删除分支的效果如下
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git branch -d delete_branch
已删除分支 delete_branch(曾为 8602795)。
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$
在本地将分支创建好后,使用git push想把分支推送到远程仓库中,但是会发现显示的是Everything up-to-date,原因是远程仓库默认的分支是master,所以master没有改变就没有推送的必要,这时需要推送的另一个命令,将分支推送给远程仓库。
命令:git push origin branch_name
效果如下。
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git push
Everything up-to-date
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git push origin v1.1
Total 0 (delta 0), reused 0 (delta 0)
To /home/ghost/warehouse/Project_test.git/
* [new branch] v1.1 -> v1.1
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git push origin v1.2
Total 0 (delta 0), reused 0 (delta 0)
To /home/ghost/warehouse/Project_test.git/
* [new branch] v1.2 -> v1.2
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git push origin vtest
Total 0 (delta 0), reused 0 (delta 0)
To /home/ghost/warehouse/Project_test.git/
* [new branch] vtest -> vtest
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$
也可以全部推送
命令:git push origin –all
效果如下
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git branch v1.4
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git branch v1.5
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$ git push origin --all
Total 0 (delta 0), reused 0 (delta 0)
To /home/ghost/warehouse/Project_test.git/
* [new branch] v1.4 -> v1.4
* [new branch] v1.5 -> v1.5
ghost@ghost-machine:~/workspace/test/ghost_project/Project_test$
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。