【Git多人开发与协作之团队的环境搭建】

Git多人开发与协作之团队的环境搭建

    • 新的改变
    • [1. Git 的用途](#1. Git 的用途)
    • [2. 分支的概念与类型](#2. 分支的概念与类型)
    • [3. HEAD 和分支指针](#3. HEAD 和分支指针)
      • [如何查看 HEAD 指向的位置:](#如何查看 HEAD 指向的位置:)
    • [4. 常见的 Git 操作](#4. 常见的 Git 操作)
    • [5. 常见问题与解决方法](#5. 常见问题与解决方法)
    • 总结
    • [GitHub 项目获取实操](#GitHub 项目获取实操)
    • [在新电脑上运行 Git](#在新电脑上运行 Git)
      • [1. 安装 Git](#1. 安装 Git)
      • [2. 配置用户名和邮箱](#2. 配置用户名和邮箱)
      • [3.配置 Git 和 SSH 密钥](#3.配置 Git 和 SSH 密钥)
      • [4.生成 SSH 密钥](#4.生成 SSH 密钥)
    • 如何在idea上完成git的使用:
    • [最终如果出现问题22: Connection refused:](#最终如果出现问题22: Connection refused:)

新的改变

最近要完成我们的小组作业了,对此我觉得做一些新的尝试,比如教会团队人员如何正确使用 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 操作

  • 创建本地分支并切换到该分支

    bash 复制代码
    git checkout -b <branch_name>
  • 查看本地和远程分支

    bash 复制代码
    git branch        # 查看本地分支
    git branch -r     # 查看远程分支
  • 切换分支

    bash 复制代码
    git checkout <branch_name>
  • 合并分支 :当开发完成后,可以通过合并操作将当前分支的改动合并到主分支(如 develop):

    bash 复制代码
    git merge <branch_name>
  • 推送分支到远程仓库

    bash 复制代码
    git push origin <branch_name>
  • 拉取远程分支到本地

    bash 复制代码
    git pull origin <branch_name>

5. 常见问题与解决方法

  • 分支合并冲突 :合并分支时可能会出现代码冲突。Git 会提示你哪个文件有冲突,你需要手动解决冲突,修改文件后提交:

    bash 复制代码
    git status         # 查看冲突文件
    # 编辑文件,解决冲突
    git add <file_name>  # 标记冲突已解决
    git commit         # 提交修改
  • 如何撤销更改 :如果你在修改文件时遇到问题,可以撤销对文件的更改:

    bash 复制代码
    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)直接使用命令:

bash 复制代码
git clone git@github.com:yearsGG/2024GUC_xz_vue-sbringboot_shangdian.git

在新电脑上运行 Git

1. 安装 Git

首先,我们需要下载并安装 Git。可以通过 Git 的官方网站进行下载:

Git 下载官网

安装完成后,可能需要配置环境变量。

2. 配置用户名和邮箱

在命令行上配置用户名和邮箱,以便提交时使用:

bash 复制代码
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"

3.配置 Git 和 SSH 密钥

配置完成后,执行以下命令,确保设置正确:

bash 复制代码
git config --list

4.生成 SSH 密钥

如果你没有现成的 SSH 密钥,可以按以下步骤生成:

bash 复制代码
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:

bash 复制代码
ssh -T git@ssh.github.com -p 443

注意这里问yes或者no的时候一定要打yes。

如果一切正常,GitHub 会返回类似的消息:

bash 复制代码
Hi <username>! You've successfully authenticated, but GitHub does not provide shell access.

如何在idea上完成git的使用:

在idea上面打开之前命令行下载好的文件,你会看到下面的页面:

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

这里可以看到你的基友的开发进度,当然前提是你要获取最新的内容(使用idea自带的终端就可以了):

bash 复制代码
git pull

最终如果出现问题22: Connection refused:

如果用git去测试github连接时出现错误:

bash 复制代码
PS C:\Users\yuanrui1> ssh -T git@github.com
ssh: connect to host github.com port 22: Connection refused

可以通过下面解决:(切换连接端口)

1.修改你生成的.ssh 目录下的config的文件:

bash 复制代码
Host github.com
    Hostname ssh.github.com
    Port 443
    User git
    IdentityFile ~/.ssh/id_rsa

2.在命令行运行下面的命令。

bash 复制代码
PS C:\Users\yuanrui1> Get-Service -Name ssh-agent | Set-Service -StartupType Manual
PS C:\Users\yuanrui1> Start-Service ssh-agent
PS C:\Users\yuanrui1> ssh-add C:\Users\yuanrui1\.ssh\id_rsa
Identity added: C:\Users\yuanrui1\.ssh\id_rsa (years_GG@outlook.com)
PS C:\Users\yuanrui1> ssh-add -l
4096 SHA256:5TTtp+Ft5/SoZr61z181lfLvCPbWBOIZ6DKWSq872mo years_GG@outlook.com (RSA)
PS C:\Users\yuanrui1> notepad C:\Users\yuanrui1\.ssh\config
PS C:\Users\yuanrui1> ssh -T git@github.com
Hi yearsGG! You've successfully authenticated, but GitHub does not provide shell access.
相关推荐
Rover.x24 分钟前
Netty基于SpringBoot实现WebSocket
spring boot·后端·websocket
中国胖子风清扬1 小时前
SpringAI和 Langchain4j等 AI 框架之间的差异和开发经验
java·数据库·人工智能·spring boot·spring cloud·ai·langchain
极度畅想1 小时前
脑电模型实战系列(三):DEAP 数据集处理与 Russell 环状模型实战(一)
深度学习·特征提取·情感计算·脑机接口 bci·deap数据集
Java水解2 小时前
【SpringBoot3】Spring Boot 3.0 集成 Mybatis Plus
spring boot·后端
苏打水com2 小时前
第十九篇:Day55-57 前端工程化进阶——从“手动低效”到“工程化高效”(对标职场“规模化”需求)
前端·css·vue·html
哈哈老师啊2 小时前
Springboot校园订餐管理系统k2pr7(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
JIngJaneIL2 小时前
基于java+ vue学生选课系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
十月不到底2 小时前
vue3手机端列表加载组件
前端·vue
残花月伴2 小时前
天机学堂-day4(高并发优化方案)
java·spring boot·后端