Git的原理和使用(四)
我们接下来学习git实战场景,双人协作开发;
目标:中央仓库的分支下的file.txr文件新增代码zhangxin和xuyangyuzhuo;
实现:开发着1新增zhangxin,开发者2进行新增xuyangyuzhuo;
条件:在一个分支(自己本地创建的分支)下协作完成;
1. 准备工作
1.1 开发者1
现在远程中创建一个分支:master--->管理--->新增分支
查看远程仓库的分支:git branch -r
使用git pull直接拉取远程仓库的分支:
git branch -a:既可以查看本地分分支也可以查看远程的分支:
git push和pull的剪短指令意味着两个分支之间要建立连接,而完整的指令则不需要进行建立两个分支之间的连接;
1.2 开发者2
对于开发者2使用windows环境进行模拟,将开发者环境进行克隆,从而也懂有dev分支:
在windows系统下进行新建文件夹,shift+右键,如下:
克隆远程仓库的https协议:
在指令窗口中作克隆指令:
仓库信息如下所示:
本地与中央分支如下:
2.开始操作
2.1 开发者1
首先,在本地创建一个分支,并切换到新创建的分支上:
git checkout -b [dev] [origin/dev]
建立本地和中央分支的连接;
git branch -vv
查看分支之间建立的连接;
此时本地新创建的dev分支,在该分支上修改file文件:
我们将该文件进行add和commit;
将文件进行推送,因为已经建立了连接,所以直接使用短推送指令:
中央仓库如下:
2.2 开发者2
如果在创建分支的时候没有和远程直接建立连接,则使用下面指令来进行分支连接:
git branch --set=upstream-to=origin/dev dev\
直接在相对应文件中就行修改:
进行add等操作:
我们在进行push推送的时候,发现出现了问题,1推送的zhangxin和2推送的xuyangyuzhuo导致中央不清楚应该保留谁的推送,所以要将中央的文件拉下来进行手动修改;
如上所示,在进行拉取的过程中发现有合并冲突的问题:
如下修改成我们想要的结果:
文件修改完成之后,
如下所示:
3. mergr操作
该操作是中央操作;
此时中央的dev分支中的file文件中有两个工作者新增的文件,但是中央的master分支中的file文件中依旧是之前的版本,没有达到我们预期的效果;
3.1 pr操作
审查人员在发行要求合理之后,就会通过申请,两个分支就会自动合并;
3.2 本地操作
0. 将中央最新的文件pull下来
1. dev 合并master
确保有冲突的时候再dev上解决;
2..push到中央;
对于开发者1来merge操作:
1、拉取中央文件
2、在master也pull,确保最新文件
3、dev 合并master
4、master合并dev
5、进行push操作
6、此时的master分支已经完成了文件的操作,所以dev分支就没有用了,来进行将其删除;
直接在中央的分支管理中进行删除dev分支;
总结如下:
总结⼀下,在同⼀分⽀下进⾏多⼈协作的⼯作模式通常是这样:
• ⾸先,可以试图⽤ git push origin branch-name 推送⾃⼰的修改;
• 如果推送失败,则因为远程分⽀⽐你的本地更新,需要先⽤ git pull 试图合并;
• 如果合并有冲突,则解决冲突,并在本地提交;
• 没有冲突或者解决掉冲突后,再⽤git push origin branch-name推送就能成功!
• 功能开发完毕,将分⽀ merge 进 master,最后删除分⽀
ps:本次的内容就到这里,谢谢观看!!!