说明
一般默认都是 master 分支,所以这就当成[开发]分支,在这个分支下进行开发,测试没问题后合并到[生产]分支,部署生产分支实现上线。
分支定义
master:开发测试分支
pro:生产正式分支
操作步骤
一、分支查看
1.git branch 查看本地分支,带星号的是当前所在分支.
2.git branch -r 查看远程分支 git branch -a 查看所有分支,包含本地和远程的(区别:本地分支和远程分支的颜色不一样)
二、操作本地分支
1.创建本地分支 git branch pro (代码为当前master分支的代码内容 git checkout -b pro 这是创建pro分支并切换到pro分支)
2.切换本地分支 git checkout pro
3.删除分支 git branch -d pro (删除会报error: Cannot delete branch 'pro' checked out at 'D:/Java/springbootdemo'这个错误,需要切换到别的分支在删除)
三、操作远程分支
1.把新建的本地分支push到远程服务器(包含分支名和pro分支的代码),远程分支与本地分支同名(当然可以随意起名)
git push origin pro:pro
四、合并分支
1.本地开发[master]分支代码测试没问题,然后提交到远程master分支。
2.切换到本地pro生产分支: git checkout pro , 更新代码 git pull origin pro 或 git pull
3.将开发[master]分支合并到生产[pro] git merge master 注意要在生产[pro]的分支上执行合并
4.将合并完的分支push到远程仓库: git push origin pro 或 git push
常见问题
Already up to date.
执行git pull 时遇到的,反正本地代码和远程代码差不多,所以强制用远程代码覆盖本地代码(注意所在的分支当前操作分支为master)
git fetch --all && git reset --hard origin/master && git pull
There is no tracking information for the current branch.
一般出现这个问题是,原来的仓库就有了两个分支,但换电脑开发后,提交了一个分支,在建立另外的分支时就会出这样的问题
这个提示可以使用 git pull origin 分支名 去pull但每次都指定太麻烦了
设置一下关联 git branch --set-upstream-to=origin/远程分支名 本地分支名 然后就可以直接使用 git pull 来同步代码了
git branch -vv 查看本地分支与远程分支的对应关系
可以查看设置的所有跟踪分支,同时还会列出每一个本地分支是否是领先、落后跟踪分支或是都有。例如上面的ahead 3表示本地有3个提交还没有推送到服务器上。
本地没有远程分支如何拉取远程分支
现象:git branch -r查看远程分支信息时,不显示任何信息。。。
解决:先执行git fetch 后再执行git branch -r 查看远程分支信息
分析:本地仓库和远程仓库本质上时完全独立的,想在本地看见远程仓库的信息就应该fetch一下远程的信息
本地已有项目下拉取远程分支
在本地已有项目的情形下,就不适宜采用 git clone 重新拉取一遍代码了,这个时候需要拉取远程分支并自动创建本地分支,命令如下
git checkout -b dev origin/dev origin/dev标识为远程仓库上的分支