git进阶教程多分支协作详解(二)

练习 - 创建“学生管理系统”

​ 本地开发

​ 分支开发

​ git冲突

​ 两地开发

1.1 在学生管理系统中进行第一次提交- 开发添加学生功能

  1. 创建student目录

在这里插入图片描述

  1. 进入student目录

在这里插入图片描述

  1. 执行git init,初始化本地版本库

在这里插入图片描述

  1. 配置student仓库的用户名和邮箱

在这里插入图片描述

  1. 创建index.html文件,并且在文件中开发添加学生功能

在这里插入图片描述

  1. 将index.html添加暂存区

在这里插入图片描述

  1. 将index.html提交到本地版本库

在这里插入图片描述

1.2 开发查询学生功能

  1. 在index.html中增加查询学生功能

在这里插入图片描述

  1. 直接使用git commit -am "xx",将文件提交到本地版本库

在这里插入图片描述

1.3 开发聊天功能

​ 这个小节讲版本回退

  1. 开发聊天功能

  2. 撤销聊天功能

    先使用git log命令查看提交记录

    再使用git reset --hard commit

在这里插入图片描述

  1. 重新上线聊天功能

    先使用git reflog查看所有的记录(包括提交的、reset掉的…)

    再使用git reset --hard commit

2. git分支

​ 几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着可以把我们的工作从开发主线上分离开来,以免影响开发主线。 在很多版本控制系统中,这是一个略微低效的过程(常常需要完全创建一个源代码目录的副本,对于大项目来说,这个过程会耗费很多时间)。

​ Git 处理分支的方式可谓是难以置信的轻量,创建新分支几乎可以在瞬间完成,并且在不同分支之间的切换操作也是十分便捷。 与其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。

2.1 创建dev分支,开发举手功能,合并到master分支

  1. 创建dev分支

在这里插入图片描述

  1. 切换到dev分支

在这里插入图片描述

  1. 开发举手功能

  2. 添加到暂存区
    在这里插入图片描述

  3. 提交到本地版本库
    在这里插入图片描述

  4. 切换到master分支
    在这里插入图片描述

  5. 在master分支上合并dev分支的代码
    在这里插入图片描述

  6. 删除dev分支
    在这里插入图片描述

2.2 master分支和dev并行开发

在master分支开发画图功能,在dev分支开发作业功能

  1. 在开发画图功能之前,先创建出dev分支
    在这里插入图片描述
  2. 在master分支开发画图功能,并提交到本地版本库
    在这里插入图片描述
  3. 切换到dev分支
    在这里插入图片描述
  4. 在dev分支开发作业功能,并提交本地版本库
    在这里插入图片描述
  5. 切换到master分支,合并dev
    在这里插入图片描述
  6. 合并结果
    在这里插入图片描述

2.3 git分支相关命令总结

  1. 创建分支

    git branch dev
    
  2. 创建并切换分支

    git checkout -b dev
    
  3. 查看分支

    git branch
    
  4. 切换分支

    git checkout dev
    
  5. 合并分支

    git merge dev
    
  6. 删除分支

    git branch -d dev
    

3 使用码云

3.1 配置SSH无密码访问远程仓库

  1. 创建SSH公私钥连接

    https://gitee.com/help/articles/4181#article-header0

  2. 创建SSH公私钥对

    ssh-keygen -t rsa -C "luxilejn@163.com"

  3. 拷贝SSH公钥到码云

    拷贝~/.ssh/id_rsa.pub文件内容到码云

在这里插入图片描述

3.2 在码云上创建非空student仓库

  1. 创建非空的student仓库

  2. 为本地student仓库添加远程student仓库

  3. 把本地的student仓库推送到远程仓库,推送被拒绝了

    为什么会被拒绝了?

    因为远程初始化了一次提交记录,本地并没有这次提交,所以应该先把远程的初始化提交合并到本地;

    1. 先执行git fetch origin master
    2. 再执行git merge origin/master,又拒绝了
    3. 这次拒绝原因:因为远程的提交记录和本地提交记录没有任何关系
    4. 解决方式:git merge origin/master --allow-unrelated-histories

3.3 模拟两地开发

  1. 先检出远程的student仓库到company目录

在这里插入图片描述

  1. 在公司开发签到功能,推送到远程版本库

    1. 先设置用户名和邮箱

在这里插入图片描述

  1. 开发签到功能,提交到本地版本库

在这里插入图片描述

  1. 推送到远程仓库

在这里插入图片描述

  1. 回家开发签退功能,推送到远程版本库

    1. 在开发前,先拉取最新代码

在这里插入图片描述

  1. 开发签退功能,并推送到远程仓库

在这里插入图片描述

3.4 小插曲

​ 在公司开发了签到功能的部分代码,提交到本地版本库,但是没有推送到远程仓库;

​ 回到家之后,继续开发签到功能的其它代码,并将结果推送到远程;

​ 第二天回到公司,拉取在家开发的代码,继续开发剩余功能;

  1. 在公司先更新代码

在这里插入图片描述

  1. 继续开发签到功能,提交本地仓库,但是没有推送远程仓库

在这里插入图片描述

  1. 回到家,发现公司开发的代码忘记推送,自己开发了其它的签到功能,开发完成之后,推送到远程仓库

    1. 修改SignIn.java

    2. 执行git add .添加到暂存区

    3. 执行git commit -m ""提交到本地版本库

    4. 执行git push origin master推送到远程版本库

  2. 回到公司,先拉取家里的的代码,再继续开发

    1. 先执行git pull origin master

      这个git pull是由git fetch + git merge组成的

      git fetch origin master

      git merge origin/master

      结果合并出现冲突,需要先手动解决冲突,再提交代码

    2. 解决冲突

      1、解决冲突

      2、使用git add .告诉git已经解决冲突

      3、使用git commit -m ""完成本地代码合并

      4、使用git push origin master推送到远程仓库

3.5 解决冲突

  1. add .`添加到暂存区

  2. 执行git commit -m ""提交到本地版本库

  3. 执行git push origin master推送到远程版本库

  4. 回到公司,先拉取家里的的代码,再继续开发

    1. 先执行git pull origin master

      这个git pull是由git fetch + git merge组成的

      git fetch origin master

      git merge origin/master

      结果合并出现冲突,需要先手动解决冲突,再提交代码

    2. 解决冲突

      1、解决冲突

      2、使用git add .告诉git已经解决冲突

      3、使用git commit -m ""完成本地代码合并

      4、使用git push origin master推送到远程仓库

9.5 解决冲突

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

商朝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值