【Git多人开发与协作之团队的环境搭建】
Git多人开发与协作之团队的环境搭建
- 新的改变
- 1. Git 的用途
- 2. 分支的概念与类型
- 3. HEAD 和分支指针
- 如何查看 HEAD 指向的位置:
- 4. 常见的 Git 操作
- 5. 常见问题与解决方法
- 总结
- GitHub 项目获取实操
- 在新电脑上运行 Git
- 1. 安装 Git
- 2. 配置用户名和邮箱
- 3.配置 Git 和 SSH 密钥
- 4.生成 SSH 密钥
- 如何在idea上完成git的使用:
新的改变
最近要完成我们的小组作业了,对此我觉得做一些新的尝试,比如教会团队人员如何正确使用 Git 来实现代码的多人协作,提高开发效率,提升个人能力。这对于我们这样的大学生还颇具挑战的,不过对于我来说这是一个有趣的东西,我并不渴望从中获得什么,我只是单纯的体验这种快乐,享受 coding 的乐趣。
1. Git 的用途
Git 是一个分布式版本控制系统,主要用于管理代码的变更。其主要功能是:
- 跟踪代码变更:每次修改都能被记录下来,并且可以随时回退到以前的版本。
- 多人协作:Git 允许多个开发者同时在同一个项目上工作,通过分支和合并的方式避免冲突。
- 代码分支管理:通过分支,团队可以独立开发不同的功能或修复不同的 bug,而不影响主代码库。
2. 分支的概念与类型
在 Git 中,分支(Branch) 是用来独立开发不同功能的工具。分支使得我们能够在不干扰主开发流程的情况下进行开发。
- 本地分支(Local Branch): 本地分支是你在自己的开发环境中创建和操作的分支。例如,你可能会创建一个
feature/login分支来开发登录功能,开发完成后再合并到主分支。 - 远程分支(Remote Branch): 远程分支是在 Git 仓库服务器上存在的分支,通常由团队成员共享。
origin/main就是 Git 默认的远程主分支名。 - 多个分支开发: 在多人开发的场景中,每个人可以在自己的分支上进行开发。例如,一个成员负责前端功能的开发,另一个成员负责后端 API 的开发。这些分支开发完成后,可以通过 Pull Request(PR)合并到
develop分支中进行集成,最后合并到main分支发布。
3. HEAD 和分支指针
HEAD 是 Git 中的一个指针,它指向当前所在的分支和提交。可以认为 HEAD 是你当前工作的“游标”。
例如,当你切换到 feature/login 分支时,HEAD 会指向该分支的最新提交。
如何查看 HEAD 指向的位置:
- 使用
git status查看当前分支。 - 使用
git log查看历史提交记录,确认 HEAD 指向的提交。
4. 常见的 Git 操作
- 创建本地分支并切换到该分支:
git checkout -b <branch_name> - 查看本地和远程分支:
git branch # 查看本地分支 git branch -r # 查看远程分支 - 切换分支:
git checkout <branch_name> - 合并分支:当开发完成后,可以通过合并操作将当前分支的改动合并到主分支(如
develop):git merge <branch_name> - 推送分支到远程仓库:
git push origin <branch_name> - 拉取远程分支到本地:
git pull origin <branch_name>
5. 常见问题与解决方法
- 分支合并冲突:合并分支时可能会出现代码冲突。Git 会提示你哪个文件有冲突,你需要手动解决冲突,修改文件后提交:
git status # 查看冲突文件 # 编辑文件,解决冲突 git add <file_name> # 标记冲突已解决 git commit # 提交修改 - 如何撤销更改:如果你在修改文件时遇到问题,可以撤销对文件的更改:
git checkout -- <file_name> # 撤销对某个文件的修改 git reset --hard # 撤销所有更改(注意:此命令会丢失所有未提交的更改)
总结
Git 是一个高效的开发工具,我们可以给团队的每个人员配置好编译环境和 Git 环境后,每个人员拥有一个本地分支,来更新和获取远程分支的内容,了解现在团队的代码开发进度,或者通过 Git 回溯到之前开发的代码内容。通过 Git 每个人可以开发不同的功能,页面,然后通过 Git 来合并分支,完成多个人共同开发不同的功能。
因此我们需要一个远程分支,来表示我们当前项目的总的开发进度,再使用一个远程分支表示我们测试的进度,我们会在这上面去合并我们已经开发的新功能,在本地我们每个人会开发不同的功能,进行测试和验证。通过 GitHub 可以看到不同的分支内容。
因此正确的方式是每个人的本地分支,推送到远程测试分支上,完成单个或者多个功能的合并更新,验证没有问题后由主要开发人员更新到项目分支上。
GitHub 项目获取实操
为了方便大家获取到我已经上传的 GitHub 文件,我建立了一个 GitHub 仓库,大家可以下载:
https://github.com/yearsGG/2024GUC_xz_vue-sbringboot_shangdian
或者通过命令行(cmd)直接使用命令:
git clone git@github.com:yearsGG/2024GUC_xz_vue-sbringboot_shangdian.git

在新电脑上运行 Git
1. 安装 Git
首先,我们需要下载并安装 Git。可以通过 Git 的官方网站进行下载:
Git 下载官网
安装完成后,可能需要配置环境变量。
2. 配置用户名和邮箱
在命令行上配置用户名和邮箱,以便提交时使用:
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
3.配置 Git 和 SSH 密钥
配置完成后,执行以下命令,确保设置正确:
git config --list
4.生成 SSH 密钥
如果你没有现成的 SSH 密钥,可以按以下步骤生成:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
添加 SSH 公钥到 GitHub
生成完 SSH 密钥后,你需要将公钥添加到 GitHub 账户(可能需要你去创建github账户)。
打开公钥文件:~/.ssh/id_rsa.pub,复制文件内容。
登录 GitHub,进入 Settings -> SSH and GPG keys -> New SSH key。
粘贴复制的公钥,并保存。
测试 SSH 连接
用以下命令测试连接 GitHub:
ssh -T git@ssh.github.com -p 443
注意这里问yes或者no的时候一定要打yes。
如果一切正常,GitHub 会返回类似的消息:
Hi <username>! You've successfully authenticated, but GitHub does not provide shell access.
如何在idea上完成git的使用:
在idea上面打开之前命令行下载好的文件,你会看到下面的页面:

点开版本控制有如下截图:

这里可以看到你的基友的开发进度,当然前提是你要获取最新的内容(使用idea自带的终端就可以了):
git pull
相关文章:
【Git多人开发与协作之团队的环境搭建】
Git多人开发与协作之团队的环境搭建 新的改变1. Git 的用途2. 分支的概念与类型3. HEAD 和分支指针如何查看 HEAD 指向的位置: 4. 常见的 Git 操作5. 常见问题与解决方法总结GitHub 项目获取实操在新电脑上运行 Git1. 安装 Git2. 配置用户名和邮箱3.配置 Git 和 SSH…...
java基础概念36:正则表达式1
一、正则表达式的作用 作用一:校验字符串是否满足规则;作用二:在一段文本中查找满足要求的内容。——爬虫 二、正则表达式 2-1、字符类 示例: public static void main(String[] args) {System.out.println("a".matc…...
java实现小程序接口返回Base64图片
文章目录 引言I java 接口返回Base64图片接口设计获取验证码图片-base64字符串获取验证码图片-二进制流arraybufferII 小程序端代码过期代码: 显示文件流图片(arraybuffer)知识扩展:微信小程序下载后端返回的文件流引言 场景: 图形验证码 背景: 接口返回arraybuffer的格式…...
网络编程并发服务器的应用
作业2:完成局域网CS模型,局域网内一个服务器,多个客户端连接一个服务器,完成局域网聊天(select函数,poll函数,完成TCP并发服务器)。 poll函数应用: 服务器部分代码&…...
数据结构——停车场管理问题
目录 1、问题描述2、逐步分析1)涉及操作2)代码实现 3、代码整合 1、问题描述 1、题目 设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列&#x…...
道品智能科技移动式水肥一体机:农业灌溉施肥的革新之选
在现代农业的发展进程中,科技的力量正日益凸显。其中,移动式水肥一体机以其独特的可移动性、智能化以及实现水肥一体化的卓越性能,成为了农业领域的一颗璀璨新星。它不仅改变了传统的农业灌溉施肥方式,更为农业生产带来了高效、精…...
AI实习--常用的Linux命令
一、基础命令 1. 切换到根目录。 cd ~ 2. 返回上一级目录。 cd .. 3. 查看当前目录下包括哪些文件和文件夹。 ls 4. 查看当前路径。 pwd 5. 将文件或文件夹剪切到目标目录下。 mv 文件所在路径 目标路径 6. 查看文本文件内容。 cat 文本文件名 7. 创建文件或文件夹…...
Python学习指南 + 谷歌浏览器如何安装插件
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: Python 目录 前言 Python 官方文档的使用 谷歌浏览器中如何安装插件 前言 在学习Python时,我们可能会出现这样的困惑&#x…...
研0找实习【学nlp】15---我的后续,总结(暂时性完结)
当下进展成果: nlptransformerpytorchhuggingfacebert简历环境配置表情识别文本分类 断更了快1个月,2个礼拜找实习,1个礼拜伤心,1个礼拜想我要干什么…… 承认自己的才疏学浅,了解了leetcode,和老师商量了…...
kylin麒麟银河桌面版操作系统安装部署
本文主要描述kylin麒麟银河桌面版操作系统的安装,该操作系统的安装源文件可以从kylin麒麟银河官方网站上下载,商业版本需要申请试用,开源版本可以直接下载使用。 如上所示,x86芯片处理器架构的请下载INTEL版本,华为海思…...
MyBatis插件原理及应用
🎮 作者主页:点击 🎁 完整专栏和代码:点击 🏡 博客主页:点击 文章目录 介绍<plugins>标签解析拦截器链的工作原理插件的应用场景MyBatis插件应用的四个组件InterceptorChain和Interceptor MyBatis框架…...
[M最短路] lc743. 网络延迟时间(spfa最短路+单源最短路)
文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接:743. 网络延迟时间 相关链接: [图最短路模板] 五大最短路常用模板) 2. 题目解析 怎么讲呢,挺抽象的…很久没写最短路算法了。反正也是写出来了,但脱离了模板,把…...
MySQL 中的锁
MySQL 中的锁:全面解析与应用指南 在 MySQL 数据库的复杂世界里,锁是确保数据一致性、完整性以及并发控制的关键机制。无论是简单的小型应用还是复杂的企业级系统,深入理解 MySQL 中的锁对于优化数据库性能、避免数据冲突和错误都具有至关重要…...
【动手学电机驱动】STM32-FOC(8)MCSDK Profiler 电机参数辨识
STM32-FOC(1)STM32 电机控制的软件开发环境 STM32-FOC(2)STM32 导入和创建项目 STM32-FOC(3)STM32 三路互补 PWM 输出 STM32-FOC(4)IHM03 电机控制套件介绍 STM32-FOC(5&…...
【C++11】尽显锋芒
(续) 一、可变参数模板 C11支持可变参数模板,也就是说支持可变数量参数的函数模板和类模板,可变数目的参数被称 为参数包,存在两种参数包:模板参数包,表示零或多个模板参数;函数参数包:表示零…...
掌握控制流的艺术:Go语言中的if、for和switch语句
标题:掌握控制流的艺术:Go语言中的if、for和switch语句 在Go语言的编程世界中,控制流语句是构建程序逻辑的基石。if语句、for循环和switch语句是我们最常用的控制流工具,它们让我们能够根据不同的条件执行不同的代码块。本文将深入探讨这些语句的使用方法、技术细节和实际…...
飞书会话消息左右排列
飞书会话消息左右排列 1. 飞书登录后,点击头像,弹出菜单有个按钮设置 2. 3....
.net 支持跨平台(桌面)系列技术汇总
1. 首先微软老大哥的.net core 。 .NET Core 是微软开发的一个跨平台、高性能的开源框架,用于构建云和互联网连接的新型应用。 它允许开发者在 Windows、macOS 和 Linux 上使用喜爱的开发工具进行开发,并支持部署到云或本地环境。 .NET Core 是对 .NET …...
springboot 静态资源访问
最近在学习springboot,在学习中一个静态资源访问,难道了我三天,在网上找了很多的资料,又是配置,又是重写WebMvcConfigurationSupport,因为以前没有接触,本来很简单的事情走了很多弯路࿰…...
【linux学习指南】初识Linux进程信号与使用
文章目录 📝信号快速认识📶⽣活⻆度的信号📶 技术应⽤⻆度的信号🌉 前台进程(键盘)🌉⼀个系统函数 📶信号概念📶查看信号 🌠 信号处理🌉 忽略此信…...
《与AI的妄想对话:如何给机器人造灵魂?》
本文为个人想法分享,是一种幻觉创作,只图一乐。 #赛博哲学 #概念艺术 #AI幻想 #科幻微小说提问: 你分析一下下面这段文章里面的harness它的构建原则。我觉得他和我们这个理论里面说的某一些东西我感觉很像好像是这种智能的或者说锚点定义的简…...
gte-base-zh Docker Compose部署:一键编排Xinference+gte-base-zh+WebUI服务栈
gte-base-zh Docker Compose部署:一键编排Xinferencegte-base-zhWebUI服务栈 1. 引言:为什么需要一键部署文本嵌入服务? 如果你正在做智能客服、文档检索或者内容推荐系统,肯定遇到过一个问题:怎么让计算机真正“理解…...
OrangePi 镜像烧录全攻略:从工具选择到实战避坑
1. 烧录工具选择与对比 第一次接触OrangePi开发板时,最让我头疼的就是镜像烧录工具的选择。市面上工具五花八门,每个教程推荐的软件都不一样。经过多次实测,我总结出三款最靠谱的烧录工具,它们各有特点: Win32DiskImag…...
华硕梅林固件下,让HP1020打印机在Linux网络环境中重获新生
1. 为什么HP1020打印机在Linux网络环境中会"罢工"? 每次看到那台尘封已久的HP LaserJet 1020打印机,我都觉得特别可惜。这台老伙计在Windows系统下表现一直很稳定,但当我尝试把它接入刷了梅林固件的华硕路由器时,却遇到…...
告别串口线!用STM32F103+W25Q64做个U盘式固件升级器(附完整Keil工程)
STM32SPI Flash打造零门槛U盘固件升级器:从原理到量产实战 在嵌入式设备维护和量产环节,固件升级一直是让开发者头疼的问题。传统串口升级需要专用线缆和上位机软件,而基于STM32和SPI Flash的U盘式升级方案,将复杂的刷机流程简化为…...
IAR平台华大HC32F460工程搭建避坑指南:从零到调试成功的全流程解析
1. 从KEIL到IAR的转型背景 最近两年芯片市场的价格波动,让很多工程师不得不重新评估开发工具链的选择。我作为一个用了五年KEIL的老用户,最近也被迫开始学习IAR平台。原因很简单——当ST单片机价格涨到华大HC32F460的十倍时,任何成本敏感的项…...
别再手动调参了!用Matlab+NRBO-BP+NSGAII搞定工艺优化,自动生成最优参数组合Excel
工艺优化新范式:基于NRBO-BP与NSGAII的智能参数寻优系统 在化工、材料、制造等领域的工艺优化过程中,工程师和研究人员常常面临一个共同的挑战:如何在有限的实验资源和时间约束下,从海量的参数组合中找到最优解。传统的手动调参方…...
告别网络烦恼:Stanza 1.5.1英文语言模型离线安装保姆级教程(Anaconda环境专用)
深度解析Stanza 1.5.1英文语言模型离线部署:Anaconda环境全流程实战 在企业内网或学术研究环境中,我们常常面临无法直接访问外部资源的情况。这时,掌握关键工具的离线部署能力就显得尤为重要。今天我们将全面剖析自然语言处理工具Stanza在受限…...
DownKyi如何成为B站视频下载的智能管家?8K高清+批量处理全解析
DownKyi如何成为B站视频下载的智能管家?8K高清批量处理全解析 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等…...
R200系列超高频读写器:从指令集到实战的物联网资产管理开发指南
1. R200系列读写器:物联网资产管理的利器 第一次接触R200系列读写器时,我就被它的多标签识读能力惊艳到了。这款超高频(UHF)读写器不仅支持840MHz~960MHz频段,还能在30米范围内同时读取上百张RFID标签,这简…...
