目录
知识点总结
1.创建dev分支开发
1.1在本地创建
1.1在远程创建(推荐)
2.远程分支和本地分支建立连接☞pull和push操作
2.1情况1
2.2情况2
2.3情况3
3.本地仓库对远程仓库的拉取pull操作
3.1情况1
3.2情况2
4.将开发分支的内容合并到远程master分支上
5.查看分支情况
6.解决git branch -a打印已被删除的远程分支的方法
知识点总结
- 本地是本地的分支,远程是远程的分支(拉取后也是)需要建立联系。
- 不能在本地切换到远程分支进行操作的,只能创建本地分支,建立联系(或者不需要)。切换到本地分支进行操作再push推送至远程分支。
- 如果是多人协作开发很可能导致就是master主分支的内容不是最新的所以,在本地基于master创建的时候,请必须pull拉取一下最新的master分支。包括如果你要拉取别人的分支帮忙修改,必须是拉取最新的版本。
同一分支下的多人协作开发模式
首先,可以试图⽤ git push origin branch-name 推送⾃⼰的修改;
如果推送失败,则因为远程分⽀⽐你的本地更新,需要先⽤ git pull 试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再⽤git push origin branch-name推送就能成功!
功能开发完毕,将分⽀ merge 进 master,最后删除分⽀。
不同的分支下的多人协作开发模式
- 每个开发者都私有一个分支去开发各自的功能。(同一文件/不同文件)
- 开发完成之后(三板斧)push,基本不会出现冲突。
- 会出现小插曲(同事生病等)。
- 完成之后需要将开发分支部分合并到master。三个方案☞建议选择:远程和本地混合。
1.创建dev分支开发
1.1在本地创建
- 无论是本地创建还是远程创建,都需要基于master的最新一次提交的版本。
- 在本地创建的feature的时候必须确保基于本地master分支创建的feature-1分支中的master分支相较于远程分支master分支是最新一次提交记录的版本。
- 先在远程仓库pull拉取master最新版本☞再创建本地分支☞推送push☞远程仓库
本地创建分支,基于本地master创建,不能保证本地master分支是最新的代码不一定是最新的版本,所以需要提前pull拉取远程仓库的最新master分支。
- git checkout master(先切换至master分支)
- git pull
- git checkout -b feature-1:本地创建本地feature-1分支
- git push origin feature-1:推本地分支feature-1到远程仓库
1.1在远程创建(推荐)
- 无论是本地创建还是远程创建,都需要基于master的最新一次提交的版本。
- 创建的dev分支就是基于master最新一次提交版本来创建的。
- 在远程仓库创建完成之后再☞拉取pull☞本地仓库
推荐:因为远程仓库创建分支(基于master创建)master就是最新最全最稳定的代码.
2.远程分支和本地分支建立连接☞pull和push操作
- 无论是pull操作或者push操作,都是针对分支的操作。、
- 必须让两个相互 拉/推 操作的分支建立连接。有了连接才能够push/pull
- master分支<---------------->master分支
- 使用git push/pull origin master指定了远程仓库的目标分支时(不需要建立连接)
- 使用git push/pull 没有指定/简写的时候,则我们需要建立连接(git才知道是从哪个本地仓库的分支,到哪个远程仓库的分支)连接在命令简写的时候才需要建立
在本地克隆远程仓库的时候,形成本地仓库的时候。master和master分支就会自动建立连接。建立连接是为了pull/push写短命令。
2.1情况1
情景:远程仓库有dev分支,本地仓库没有dev分支
命令:git checkout -b dev origin/dev
在本地创建dev分支的同时切换到dev分支上,并且和远程仓库的dev分支建立连接
2.2情况2
情景:远程仓库有dev分支,本地仓库有dev分支
命令:git branch --set-upsteam-to=origin/dev(远程) dev(本地)
直接建立连接
2.3情况3
情景:远程仓库没有dev分支,本地有dev分支
命令:git push origin dev
在创建远程仓库的分支同时,与本地仓库建立连接
3.本地仓库对远程仓库的拉取pull操作
3.1情况1
拉取分支里面的内容(某个文件必须分支和分支建立连接才可)
3.2情况2
拉取仓库的内容(包括拉取分支本身和分支下的内容)是不需要建立连接的
4.将开发分支的内容合并到远程master分支上
【1】 全在远程操作(无冲突):开发分支feature直接和主分支master最新一次提交版本merge合并。(没有合并冲突)
【2】开发分支feature直接和主分支master最新一次提交版本merge合并存存冲突。
【2.1】本地和远程结合(存在冲突)
- 本地服务器操作:在本地仓库切换至feature-1 mereg合并 本地master分支,存在冲突,手动解决冲突,三板斧提交并且推送push。
- 远程服务器操作:在远程仓库master主分支 merge合并feature-1分支
【2.2】全在本地操作(存在冲突)
- 在本地仓库切换至feature-1 mereg合并 本地master分支,存在冲突,手动解决冲突,三板斧提交
- 切换至本地master分支合并
- 最后push推送至远程仓库
具体操作前面博文详细演示过了☞☞
5.查看分支情况
明确本地分支/远程分支
查看本地分支:git branch
查看远程分支:git branch -r
既查看本地分支又查看远程分支:git branch -a
查看本地分支和远程分支建立连接:git branch -vv
6.解决git branch -a打印已被删除的远程分支的方法
- 前面我们知道,当我们在远程仓库删除无用分支之后,使用git branch -a仍然能够看到删除的无用分支。
git remove show origin:帮助我们展示远程仓库分支的一些情况
git remove prune :帮助我们移除本地陈旧的分支(远程仓库已经删除的分支)
git branch -d:删除的分支名称