Git原理入门

团队协同开发

要理解git的使用原理,就要知道团队协同开发的概念。就目前我们掌握的知识来讲,如果想要多人开发同一个项目,那只能通过拷贝的方式

A和B同时开发了一个项目,同时拷贝给C,由C进行整合,这样做从理论上来说可行,但是会存在很多问题,比如A和B有相同的命名的类或者包名不相同,或者A和B遵循的语法规则不统一,那么在整合时工作量就会很大,还可能会出现一些问题

比如A和B同时创建了一个同名的Servlet,在各自的iede上都能运行,但是当他们拷贝给C的时候,明显在C那儿会出现问题,只要开发过程中规范有一点误差,都会造成问题。

那么怎么解决团队协同开发的问题呢?
##解决方案是这样的:
1、由C创建一个项目
2、C将创建的这个项目1上传到一个远程仓库
3、4:A和B去这个远程仓库下载这个项目,于是A和B的本地就同时又两个相同结构的项目
至此,就解决了项目初期的结构不同的问题,然后A和B开始做开发。

开发时:
5:A创建了一个aServlet,并将它上传至远程仓库
6:B同时也创建了一个aServle,也将它上传至远程仓库,但是这时上传不成功,因为远程仓库中已经存在了一个aServle的文件,发生了冲突。
7、于是B就将他的aServle改名,改成bServlet
8、再次上传,于是上传成功了。在远程仓库里的项目就同时包含了aServlet和bServlet

还存在一个问题
当远程仓库中的项目中同时存在一个文件,里面有aaa的内容,当A和B同时下载到本地时,他们本地的这个项目也都会有aaa的内容

这时A往项目1中添加了bbb的内容,而B往项目1中添加了ccc的内容

当A往远程仓库提交上传项目1的之后,远程仓库的项目中就有了A添加的内容

这时如果B将自己的项目上传到远程仓库,那么就会将A提交的内容覆盖,值留下B的内容,在实际的开发中,这种情况显然是不允许发生的。那如何解决这个问题?

解决的方案是通过版本监控来进行版本的管理
就是说,在C将项目1上传到远程仓库后,会给项目1添加一个版本号,那这是如果A和B去下载这个项目,他们下载的项目就是版本1

这时A和B同时在项目1中同一个文件下写入不同的内容
A的手速比较快,写完之后他将自己写的项目提交到远程仓库,只有版本相同才能允许提交。远程仓库的内容就变成了A所提交的内容,因为做了修改,所以远程仓库中的项目由版本1变成了版本2
这时B也想提交自己的项目,但是提交到远程仓库首先会比对版本,因为远程仓库是版本2,而B提交的是版本1,版本不同,这种情况会给出提示,如果B还是要强制提交,那么他提交的内容就会覆盖远程仓库上的内容,这种情况会被打死。实际做法应该是这样的:

B再去下载一次远程仓库的项目,这时B本地的项目中就有A修改过的内容和他自己添加的内容,B本地的项目版本也变成了版本2

这时他再去提交,远程仓库的版本和他的版本一致,就可以提交成功,远程仓库的项目中就会有A和B修改的内容,对应的,版本也会发生改变,生成新的版本

这就是版本管理,当然版本管理并不是靠人工完成,人工进行版本管理工作量会特别大,加上每提交就生成一个新版本,如果项目很大,提交多次,版本很多个,靠人工管理并不现实。

总结:在团队协同开发时,首先会对比提交的版本与远程仓库的版本,如果版本一致则提交不会出现问题,如果版本不同,则不允许提交,这时就需要一个管理版本的工具来进行管理,也就是我们要学习的Git。

Git入门——团队协同开发相关推荐

  1. git 与团队协同开发,避免冲掉别人代码的方法

    在团队开发中,git的使用已经很常见了,博主也是经常使用coding,github等代码托管平台.在多人协同开发中,我们经常会遇到这样的问题:A在本地开发完成后,将代码推送到远程,这时候B的本地代码的 ...

  2. Intellj IDEA 配置Git/码云插件,团队协同开发

    老师今天下午讲了怎么协同开发,特地做了下笔记,可以给需要的人一些帮助,自己日后也可以用到 图片有点多. Intellj IDEA 配置Git/码云插件,团队协同开发 1.1.在码云官网上注册账号 ht ...

  3. IntellJ IDEA配置Git/码云插件实现团队协同开发

    IntellJ IDEA配置Git/码云插件实现团队协同开发 2019-3-21 热水 术语  公钥和私钥是什么,他们分别起到什么作用? 一句话:公钥和私钥是成对的,它们互相解密. 公钥加密,私钥解密 ...

  4. git(gitlab)子模块功能在团队协同开发和生产环境中的应用(git,gitlab,TortoiseGit,CI/CD,Jenkins,docker-compose,分支合并,开发环境,测试环境)

    git(gitlab)子模块功能在团队协同开发和生产环境中的应用 目录 git(gitlab)子模块功能在团队协同开发和生产环境中的应用 一.前言 二.先决条件 三.创建gitlab项目(项目管理员操 ...

  5. git的团队协作开发

    title: git的团队协作开发 date: 2018-04-24 14:00:03 tags: [git] --- 项目负责人创建组织架构 在控制面板中点击组织按钮,添加组织,在这里可以把组织理解 ...

  6. 多团队协同开发的18条实践

    很多项目都面临多团队协同开发的问题,有哪些实践可以帮助多团队高效协同呢?我整理了如下的实践供大家参考: 1 确定共同的目标与愿景 2 技术解耦,按业务功能分工尽量独立. 3 对各系统的概要功能与处理的 ...

  7. GitHub团队协同开发流程

    GitHub团队协同开发流程 1.  在github上创建组织,并邀请成员建立队伍 创建组织的具体教程: http://blog.csdn.net/song_shui_lin/article/deta ...

  8. Git分支及其协同开发

    Git协同开发 Git分支 Git是如何保存数据的 Git分支的本质 Git分支的操作 远程仓库与本地仓库分支开发 一个项目多个远程仓库 远程仓库操作命令 协同开发 Git flow工作流 GitLu ...

  9. 如何使用Git进行团队协作开发

    点击上方蓝色"飞雪无情"关注我,设个星标,第一时间看文章 在团队协作开发中,Git已经越来越流行,如果你不懂Git,那么就很难参与到团队的协作开发中. 除了公司内部的协作开发,如果 ...

最新文章

  1. uniapp与帝国cms7.5开发实战之动态爆料订阅号app开发实战记录
  2. [转]DICOM医学图像处理:Deconstructed PACS之Orthanc
  3. 5 种方法教你用Python玩转histogram直方图
  4. unity vscode没有智能提示_GAMES101课程环境搭建(Win10+VSCode)
  5. Visio的VBA初探
  6. 文本编辑软件哪个好_过年倒计时软件哪个好 过年倒计时软件推荐
  7. python环境的打包与加载
  8. 1、eclipse 使用git提交项目至github进行项目托管
  9. 微软 Windows 10 S 之心不死!
  10. 关于spring注入
  11. 雅虎的用户注册页面抽风了
  12. PLSQL自动输入select * from|附件在cnblogs文件|
  13. 服务器和客户端的通信绘图
  14. 怎么在qq空间引流?QQ空间生日栏怎么引流?
  15. 图片批量转换成pdf
  16. [漏洞分析] CVE-2022-0995 watch_queue 1bit “溢出“内核提权
  17. LSB低位隐写(菜鸡理解)
  18. 办公文书处理属于计算机应用中的,电大计算机应用基础总结基础知识单选题
  19. 群晖NAS搭建web服务器,并发布公网可访问 3/4
  20. 淘宝API接口分类!!!

热门文章

  1. Unity UI框架
  2. 臀大肌(05):跪撑屈膝抬腿
  3. sublime txt
  4. Unix/Linux编程:sigaction
  5. 软件测试基础知识整理(详细版)收藏这篇足矣
  6. Java炒鸡重要知识点:多态!!!
  7. 2021-1-22 potplayer 快进如何精准到1秒而不是10秒、9秒、3秒这么混乱
  8. android全局轮询机制,Android轮询机制
  9. 3D手势识别(二)左右、上下滑动判断
  10. Linux 下查看进程内的线程情况 ps, top 命令