当前位置: 首页 > article >正文

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:本次的内容就到这里,谢谢观看!!!

        


http://www.kler.cn/news/360139.html

相关文章:

  • Redis如何批量删除指定前缀的key
  • 88.【C语言】文件操作(5)
  • php计算经纬度距离 及 某点是否在经纬度节点范围
  • apache flink+starrack+paino 打造流批一体数据仓库
  • 【HeadFirst 设计模式】适配器模式的C++实现
  • XS2123--------IEEE 802.3af 兼容的 PD 和 DC/DC 控制器集成功率 MOSFET V2.0
  • 找不到包的老版本???scikit-learn,numpy,scipy等等!!
  • 【Golang】Go语言web框架Gin响应客户端有哪些方式
  • C++详细笔记(四)
  • 每日OJ题_牛客_集合_排序_C++_Java
  • stable diffusion WEBUI Brief summary
  • 家政小程序搭建,数字化市场发展下的意义
  • RK3588开发笔记-麦克风阵列多pdm通道合并成一个声卡
  • 智能新势力:防爆挂轨巡检机器人助力化工安全
  • 外包干了2个月,技术明显退步
  • Java八股整合(Kafka+RocketMQ+K8S)
  • Redis入门:在Java程序中高效使用Redis
  • 4.流程控制及函数
  • 代码随想录算法训练营第二十二天 | 回溯理论基础 77.组合 216.组合总和Ⅲ 17.电话号码的字母组合
  • nginx精讲