版本控制工具Git集成IDEA的学习笔记(第二篇GitHub)

news2025/1/12 8:43:48

 

目录

一、团队内协作和跨团队协作讲述

1、团队内协作

2、跨团队协作

 二、团队内合作交互方式 

1、初始化本地库

2、创建远程库

3、在本地创建远程库地址的别名

4、推送操作

5、克隆操作

6、邀请加入团队,push操作

7、远程库修改的拉取操作

8、远程库修改的拉取操作2

9、协同开发合作时冲突的解决办法

三、跨团队合作交互方式

1、跨团队合作

2、SSH免密登录

四、IDEA集成Git

1、IDEA集成Git:

2、本地库和远程库的交互

3、在IDEA中进行推送:

4、使用IDEA克隆远程库到本地

5、解决冲突

6、如何避免冲突


一、团队内协作和跨团队协作讲述

1、团队内协作

如果是同一个公司内一个团队协作开发项目,在Git中的使用方式通常是采用单一共享仓库的方式,这种模式称为集中式版本控制系统(Centralized Version Control System, CVCS)。

具体流程如下:

1. 在公司内部搭建一个开发团队所有成员都可以访问的Git仓库。

2. 团队成员将该仓库clone到本地后,在本地进行开发。

3. 开发完成后,通过git push将代码推送到共享仓库。

4. 其他团队成员通过git pull获取最新代码。

5. 仓库中存储着项目的所有更新历史和多个开发者的贡献。

6. 通过分支、标签等方式管理功能的开发。

7. 采用代码review流程,确保仓库代码质量。

这种单仓库多开发者的模式,可以最大限度地减少冲突,是同一个团队协作开发的最佳实践。它可以看作是集中式版本控制的方式,通过Git实现。 

2、跨团队协作

如果是同一个公司内部的不同开发团队协作开发项目,在Git中的协作方式通常是采用共享仓库的方式,这种模式称为DCVS(Distributed Version Control System,分布式版本控制系统)。

具体流程如下:

1. 公司内部搭建一个内部的Git仓库,作为项目的主仓库。

2. 每个团队从主仓库fork一个自己的子仓库,团队内部开发在该仓库进行。

3. 开发完成后,每个团队都可以通过push将代码推送回主仓库。

4. 通过pull请求和代码review的流程,各团队协同确保主仓库内代码的质量。

5. 每个团队定期从主仓库pull取最新代码,与自己的子仓库同步。

这种一个主仓库多团队协作的模式,可以最大限度地协调公司内部的开发,防止冲突,保证主仓库代码的稳定。也符合Git分布式版本控制的设计思想。因而在同一个公司内非常常见。


 二、团队内合作交互方式 

1、初始化本地库

2、创建远程库

【1】创建远程库

【2】录入信息:

【3】完成状态:

3、在本地创建远程库地址的别名

(1)远程库的地址:

点击进入:

(2)远程库地址比较长,每次复制比较麻烦 ,在Git本地将地址保存,通过别名 

查看别名:

起别名:

 

4、推送操作

推送成功以后,查看自己的远程库:

5、克隆操作

(1)远程库地址复制:

(2)克隆操作:

克隆操作可以帮我们完成:

(1)初始化本地库

(2)将远程库内容完整的克隆到本地

(3)替我们创建远程库的别名: 

6、邀请加入团队,push操作

【1】更新本地库信息:

【2】push内容到远程库中去:

发现可以直接push进去,并没有让我录入账号密码,或者也没有提示错误 - --》结果 很诡异 

原因:git使用的时候在本地有缓存:

将缓存删除:

现在再次重新push,发现出错了:

必须要加入团队:

登录项目经理的账号,邀请普通成员: 

 

 

登录被邀请者的账号,接收邀请:(在地址栏录入邀请链接即可:https://github.com/zhaoshanshan3366/GitResp2/invitations)

7、远程库修改的拉取操作

【1】拉取操作 pull操作,相当于  fetch+merge  

【2】项目经理先先确认远程库内容是否更新了:

【3】项目经理进行拉取:

(1)先是抓取操作:fetch:

在抓取操作执行后,只是将远程库的内容下载到本地,但是工作区中的文件并没有更新。工作区中还是原先的内容:

抓取后可以去远程库看看内容是否正确:

然后发现内容都正确,就可以进行合并操作了:

合并之前应该将分支切换回来:

(2)进行合并:merge:

8、远程库修改的拉取操作2

远程库的拉取可以直接利用pull命令来完成: 

fetch+merge操作:---》为了保险,慎重 

pull --->代码简单,省事

9、协同开发合作时冲突的解决办法

【1】向远程库推送数据:

 

【2】做了一个拉取操作: 

到这里为止,现在远程合作没有任何问题。

现在操作同一个文件的同一个位置的时候,就会引起冲突:

【3】再次做了推送操作:

改动位置:

【4】改动Test.txt中内容,然后进行推送:

发现 推送失败!

在冲突的情况下,先应该拉取下来,然后修改冲突,然后再推送到远程服务器:

先拉取:

查看冲突:

 

人为解决这个冲突:(该删的删,该留的留)

解决完冲突以后,向服务器推送:

推送:

解决了冲突问题:

三、跨团队合作交互方式

1、跨团队合作

【1】得到远程库的地址:

 

【2】进行fork操作:

进入到账号后:复制地址:https://github.com/zhaoshanshan3366/GitResp2.git

然后点击下面的fork操作:

【3】然后就可以克隆到本地,并且进行修改:

然后更改数据:添加到暂存区,然后提交到本地库,然后push到远程库:

【4】进行pull request操作:

 

 

【5】进行审核操作:

可以互相留言:

查看具体提交的内容:

确定通过以后,可以进行合并:

2、SSH免密登录

免密操作:

【1】进入用户的主目录中:

【2】执行命令,生成一个.ssh的目录:

keygen  --- >  key generation

注意:C要大写

后面的邮箱,是你的github注册的账号的时候对应的邮箱

三次回车确认默认值即可 

发现在.ssh目录下有两个文件:

【3】打开id_rad.pub文件,将里面的内容进行复制操作:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCqiZEbHnyAbBFzx/OFWUyxlL2NUyf//1NdmvYfi+x09AENYVDXcPc2CLiUSYpUcRj7eWuLiIBuzYO/0aYTYgSLPMKAKn8WSLipd7S+vqRsxRLZYna+WvfGvYXc6DexenZlgoMzQe7CBE4IaL1eG4IAvAbjXSF0pq7OJKkcb5L8lQ0HlU9p+eC7WluoW+ZThym/Au8lscDtUVE/I9IwAgvUXB4TxmP7aYD1YCrAUuQ+6mlgh+Tqqb4aWyHPIvtXidkWOPS2pZ7zGi+1cQE6UFxxNlIrH5tczmOKOZ2XKemFWMFc4S89O1y9M9pfOFZZ5F4gbQf6PmrbB4eSyYmWT1TH6FBlB9eaw8v8w186qvqbUKHIc450/hZuQ9LehhdHDgkT86uBAEkXBwwHvVsIM61AD7TC0E1uMw0/Cf4I64vZOVF0/pE6rjs+0LqvF/mtq4aM1riIkSKqFFEm5sx2MsCAJrSBTr3uQFufAMA4VmANH6YAtTwgIJtV5AI16XQlY/8= chinazss@126.com

【4】打开github账号:

【5】生成密钥以后,就可以正常进行push操作了:

对ssh远程地址起别名:

展示别名:

创建一个文件:

添加到暂存区,提交到本地库,然后push到远程库(地址用的是ssh方式的地址)

 

ssh方式好处:   不用每次都进行身份验证

缺陷:只能针对一个账号

四、IDEA集成Git

1、IDEA集成Git:

本地库的初始化操作:

本地库初始化完成了,生成了.git目录:

添加到暂存区,再提交到本地库操作;  add +commit:

 

 

当你更改内容以后,前面跟本地库内容不一致的地方会显示绿色:

 

2、本地库和远程库的交互

因为他们是两个不同的项目,要把两个不同的项目合并,git需要添加一句代码,在  git pull  之后,这句代码是在git 2.9.2版本发生的,最新的版本需要添加  --allow-unrelated-histories  告诉 git 允许不相关历史合并 

假如我们的源是origin,分支是master,那么我们需要这样写 git pull origin master --allow-unrelated-histories  

这个方法只解决因为两个仓库有不同的开始点,也就是两个仓库没有共同的 commit 出现的无法提交。如果使用本文的方法还无法提交,需要看一下是不是发生了冲突,解决冲突再提交

push推送: git push -u origin master -f  

 到这里 远程库和本地库就可以进行交互了。

3、在IDEA中进行推送:

 

 

一般在开发中先pull操作,再push操作,不会直接进行push操作!!

4、使用IDEA克隆远程库到本地

利用IDEA进行克隆项目:

 

克隆到本地后:

这个目录既变成了一个本地仓库,又变成了工作空间。

 

5、解决冲突

【1】在你push以后,有冲突的时候提示合并操作: 

合并:

 

6、如何避免冲突

【1】团队开发的时候避免在一个文件中改代码 

【2】在修改一个文件前,在push之前,先pull操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/889608.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Vue】yarn 安装包时权限不足或者文件夹被占用导致安装失败

在一个 Vue3 项目中,用 yarn 安装 Vue 插件或者 Vue-Router 时,出现同样的 error ,如下: An unexpected error occurred: “EPERM: operation not permitted, unlink ‘C:\Codefield\项目\yupao-frontend\node_modules\esbuild\w…

zabbix配置微信报警

如有错误,敬请谅解! 此文章仅为本人学习笔记,仅供参考,如有冒犯,请联系作者删除!! 6.1 注册企业微信 企业微信注册地址:https://work.weixin.qq.com 设置总部门名称添加成员 也可以…

小程序项目组件的基本应用

宿主环境:程序运行必须依赖的环境 小程序的宿主环境 ---->手机微信(定位、扫码、支付等) 小程序的通信模型: 渲染层和逻辑层之间的通信(微信客户端转发)逻辑层和第三方服务器之间的通信(微信客户端转发) 小程序的运行机制: 启动&#xff1…

chrome屏幕共享插件的获取和配置

文章目录 1. 下载插件2. 加载插件3. 打开这个文件4. 关掉开发者模式 1. 下载插件 https://github.com/webrtc/samples/blob/gh-pages/release/desktopCaptureExtension.zip 不过我下载不了,找别人要了这个文件 解压 2. 加载插件 选择 扩展程序—》管理扩展程序 加…

拥抱变革 展现PMO力量 | 易趋受邀出席2023第十二届中国PMO大会

2023年8月12-13日,由PMO评论主办的第十二届中国PMO大会(以下简称PMO大会)在北京成功落幕。 (主论坛一现场) 本届大会以“拥抱变革 展现PMO力量”为主题,设置了“PMO与组织变革”、“PMO与组织战略”2个主论…

vueuse常用方法

useDateFormat 时间格式化 <script setup lang"ts">import { useNow, useDateFormat } from vueuse/coreconst formatted useDateFormat(useNow(), YYYY-MM-DD HH:mm:ss)</script><template><div>{{ formatted }}</div> </templa…

【爱书不爱输的程序猿】公网访问本地搭建的WEB服务器之详细教程

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本地电脑搭建Web服务器并用cpolar发布至公网访问 前言1. 首先将PHPStudy、WordPress、cpolar下载到电脑2. 安装PHPStudy3. 安装cpolar&#xff0c;进入Web-UI界面4.安装wordpress5.…

赋能智慧零售,美格智能助力升级科技感购物体验

近期&#xff0c;一段消费者在商场使用智能购物车的视频冲上社交平台热搜榜&#xff0c;获得百万点赞&#xff0c;网友纷纷感慨科技进步的速度。许多人会好奇智能购物车和普通购物车有什么区别呢&#xff1f;智能购物车具有用户识别、室内定位、数据采集、精准营销、自助结算、…

低代码PaaS平台源码:基于Kubernetes云原生技术,快速构建企业级应用程序

低代码PaaS平台 低代码PaaS平台可以在云端开发、部署、运行低代码应用程序。使用独立数据库模型&#xff0c;基于Kubernetes云原生技术&#xff0c;每个租户均可拥有一套独立的存储、数据库、代码和命名空间&#xff0c;实现了100%的租户数据隔离&#xff0c;并可以随时迁移到…

【RP2040】香瓜树莓派RP2040之LED

本文最后修改时间&#xff1a;2022年09月05日 11:02 一、本节简介 本节介绍如何编写一个LED驱动。 二、实验平台 1、硬件平台 1&#xff09;树莓派pico开发板 ①树莓派pico开发板*2 ②micro usb数据线*2 2&#xff09;电脑 2、软件平台 1&#xff09;VS CODE 三、版权声…

ppt转pdf免费的工具哪个好用?免费PPT转换为PDF的方法分享

在我们的工作和学习中&#xff0c;将PPT文件转换为PDF格式对于分享和储存具有重要意义。PPT文件是一种常用的演示工具&#xff0c;用于展示和传达信息。然而&#xff0c;PPT文件在不同的平台和设备上可能存在格式兼容性的问题&#xff0c;而且文件大小较大&#xff0c;不方便共…

C#__使用Type类反射数据的基本用法

// 简单介绍 // 元数据&#xff08;metadata&#xff09;&#xff1a;与程序及其类型有关的数据。 // 反射&#xff1a;一个运行的程序查看本身元数据或其他程序集中的元数据的行为 // Assembly类&#xff1a;允许访问给定程序集的元数据&#xff0c;包含了可以加载和执行程序…

爬虫IP时效问题:优化爬虫IP使用效果实用技巧

目录 1. 使用稳定的代理IP服务提供商&#xff1a; 2. 定期检测代理IP的可用性&#xff1a; 3. 配置合理的代理IP切换策略&#xff1a; 4. 使用代理IP池&#xff1a; 5. 考虑代理IP的地理位置和速度&#xff1a; 6. 设置合理的请求间隔和并发量&#xff1a; 总结 在爬虫过…

Max Compute 操作记录

编译 max compute-spark git clone https://github.com/aliyun/MaxCompute-Spark cd spark-3.x mvn clean package -DskipTests在 target 目录下生成 以下两个文件。 spark-examples_2.12-1.0.0-SNAPSHOT-shaded.jar spark-examples_2.12-1.0.0-SNAPSHOT.jar2. DataWorks 上传…

计组 | 中断是什么?中断流程有哪些?什么情况下响应中断?

前言 记录一些计组相关联的题集与知识点&#xff0c;方便记忆与理解。 中断 总结 IBM370系统&#xff1a; IBM370计算机将中断类分为机器校验、访管、程序性、外部、输入/输出、重新启动6类。 中断响应优先级级别最低的是 重新启动中断 中断响应优先级级别最高的中断类型是…

ARouter基本使用及原理分析

作者&#xff1a;愿天深海 ARouter简介 ARouter是阿里开源的一款帮助Android App进行组件化改造的路由框架&#xff0c;是Android平台中对页面和服务提供路由功能的中间件&#xff0c;可以实现在不同模块的Activity之间跳转。 ARouter的特点是灵活性强还能帮助项目解耦。 除…

SpringCloud Gateway:status: 503 error: Service Unavailable

使用SpringCloud Gateway路由请求时&#xff0c;出现如下错误 yml配置如下&#xff1a; 可能的一种原因是&#xff1a;yml配置了gateway.discovery.locator.enabledtrue&#xff0c;此时gateway会使用负载均衡模式路由请求&#xff0c;但是SpringCloud Alibaba删除了Ribbon的…

创建远程仓库以及分支

1、 创建远程仓库 这里有两种方式 1.1 利用git的插件有Gitee、GitHub。 来到 GitHub 中发现已经帮我们创建好了 gitTest 的远程仓库。 1.2 通过Push的方式推送本地库到远程库 这种方式需要提前创建好仓库。 右键点击项目&#xff0c;可以将当前分支的内容 push 到 GitHub 的远…

探索区块链世界:去中心化应用(DApp)的崭新前景

随着科技的不断发展&#xff0c;区块链技术逐渐引领着数字时代的潮流。在这个充满创新和变革的领域中&#xff0c;去中心化应用&#xff08;DApp&#xff09;成为了备受瞩目的焦点。DApp 不仅改变了传统应用程序的范式&#xff0c;还在金融、社交、游戏等多个领域展现出了广阔的…

《内网穿透》无需公网IP,公网SSH远程访问家中的树莓派

文章目录 前言 如何通过 SSH 连接到树莓派步骤1. 在 Raspberry Pi 上启用 SSH步骤2. 查找树莓派的 IP 地址步骤3. SSH 到你的树莓派步骤 4. 在任何地点访问家中的树莓派4.1 安装 Cpolar内网穿透4.2 cpolar进行token认证4.3 配置cpolar服务开机自启动4.4 查看映射到公网的隧道地…