网站协作开发指南

佚名 / 2024-07-18 / 原文

协作开发指南

开发环境的配置

环境是Eclipse, JDK 21, Git, Maven。
以上软件下载官网最新版本即可。
通过Git拉取分支到本地,创建本地的一个分支(git的使用后面有写),按照自己的分工进行开发。开发完毕后push自己的分支,合并到master分支中。
Git拉取的时候整个项目就会下载下来了,把下载下来的项目导入Eclipse。
导入项目以后,Maven会自动下载依赖包,如果报错,耐心等待下载完成(大概需要几十分钟),下载完成后错误就会消失。

项目的结构

src/main/java 文件夹里是后端的Java代码:分别是主程序,MVC的模型,视图,控制器。
src/main/resources 文件夹里是前端代码:static 文件夹里是CSS和JS文件,templates 文件夹里是HTML文件。
application.properties 是Spring Boot的配置文件,这里用不到。


这三个文件夹里的内容都用不到。


src 文件夹里包含了前面的后端和前端代码。由于Eclipse显示项目结构的方式,代码文件夹会显示两次,但前后内容是一样的。
target 文件夹不用管,也用不到。
pom.xml 是Maven的配置文件,具体使用方法到需要时再详细介绍。
README.md 是设计文档。

开发时的注意事项

使用增量开发,即不要修改项目里已经有的内容,而是新建文件,进行功能的增加。
例如,假如我要开发一个展示页面,需要写一个CSS文件,我应该新建一个CSS文件,而不是在style.css里进行修改。
这样做能保证项目的稳定性和可维护性。

git与GitHub

由于我们的项目是私有项目,需要绑定github账户才能操作。在你第一次pull或push命令的时候,git应该会自动提示你绑定。

如果是第一次使用git

要从GitHub上的私有仓库拉取项目到你的电脑上,你需要先配置GitHub的身份验证,然后使用Git克隆仓库。以下是详细的步骤:

1. 安装并配置Git

如果你已经安装了Git,可以跳过这一步。如果没有,请按照以下步骤安装:

  • 下载Git

    • Git官网
    • 根据你的操作系统选择合适的版本下载并安装。
  • 配置Git用户名和邮箱

    • 打开命令提示符(Windows)或终端(Mac/Linux),输入以下命令配置用户名和邮箱:
      git config --global user.name "你的用户名"
      git config --global user.email "你的邮箱"
      

2. 配置GitHub身份验证

有两种常用的方法:使用SSH密钥或Personal Access Token (PAT)。

使用SSH密钥
  1. 生成SSH密钥

    • 打开命令提示符或终端,输入以下命令生成SSH密钥:
      ssh-keygen -t ed25519 -C "你的邮箱"
      
    • 按照提示操作,一般会生成id_ed25519id_ed25519.pub两个文件。
  2. 将SSH密钥添加到GitHub

    • 打开id_ed25519.pub文件,复制里面的内容。
    • 登录GitHub,点击右上角头像,然后进入Settings
    • 在左侧栏找到并点击SSH and GPG keys,点击New SSH key,将刚才复制的内容粘贴进去,添加SSH密钥。
  3. 配置SSH密钥

    • 在命令提示符或终端中,输入以下命令启动SSH代理并添加SSH密钥:
      eval "$(ssh-agent -s)"
      ssh-add ~/.ssh/id_ed25519
      
  4. 验证连接

    • 输入以下命令验证是否成功连接到GitHub:
      ssh -T git@github.com
      
    • 如果成功,你会看到类似以下的消息:
      Hi username! You've successfully authenticated, but GitHub does not provide shell access.
      
使用Personal Access Token (PAT)
  1. 创建Personal Access Token

    • 登录GitHub,点击右上角头像,然后进入Settings
    • 在左侧栏找到并点击Developer settings,然后点击Personal access tokens
    • 点击Generate new token,选择适当的权限并生成Token。
  2. 使用Personal Access Token

    • 在Git提示输入密码时,使用生成的Token作为密码。

3. 克隆私有仓库

  1. 克隆项目

    • 打开命令提示符(Windows)或终端(Mac/Linux),输入以下命令克隆项目:

      git clone git@github.com:username/repository.git  # 使用SSH
      # 或者
      git clone https://github.com/username/repository.git  # 使用HTTPS
      
    • 例如,使用SSH克隆项目:

      git clone git@github.com:your-username/your-private-repo.git
      
    • 使用HTTPS克隆项目:

      git clone https://github.com/your-username/your-private-repo.git
      
  2. 进入项目目录

    • 克隆完成后,进入项目目录:
      cd your-private-repo
      

4. 创建并切换到新功能分支

  1. 确保当前在master分支并拉取最新代码

    git checkout master
    git pull origin master
    
  2. 创建并切换到新功能分支

    git checkout -b feature/<你的功能分支名称>
    

5. 在功能分支上进行开发和提交

  1. 开发你的功能,修改或新建文件

  2. 添加修改到Git暂存区

    git add .
    
  3. 提交修改

    git commit -m "描述你的改动"
    

6. 将功能分支推送到远程仓库

  1. 推送功能分支到远程仓库
    git push origin feature/<你的功能分支名称>
    

7. 创建Pull Request (PR) 并请求代码审查

  1. 登录GitHub,找到你的功能分支,点击Compare & pull request按钮
  2. 填写PR描述,添加审查者,然后创建PR

8. 合并PR到master分支

  1. 通过审查后,点击Merge pull request按钮将功能分支合并到master分支
  2. 合并后删除功能分支
    git branch -d feature/<你的功能分支名称>
    git push origin --delete feature/<你的功能分支名称>
    

9. 同步本地master分支

  1. 切换回master分支并拉取最新代码
    git checkout master
    git pull origin master
    

通过以上步骤,你可以成功从GitHub上的私有仓库拉取项目并进行协作开发。

git工作流的使用

使用Feature Branch Workflow(功能分支工作流),具体的步骤和命令如下:

  1. 从master分支拉取最新代码:

    git checkout master
    git pull origin master
    
  2. 创建并切换到新功能分支:

    git checkout -b feature/<你的功能分支名称>
    
  3. 在功能分支上进行开发和提交:

    git add .
    git commit -m "描述你的改动"
    
  4. 将功能分支推送到远程仓库:

    git push origin feature/<你的功能分支名称>
    
  5. 创建Pull Request (PR) 并请求代码审查:

    • 登录GitHub,找到你的功能分支,点击Compare & pull request按钮。
    • 填写PR描述,添加审查者,然后创建PR。
  6. 合并PR到master分支:

    • 通过审查后,点击Merge pull request按钮将功能分支合并到master分支。
    • 合并后删除功能分支:
      git branch -d feature/<你的功能分支名称>
      git push origin --delete feature/<你的功能分支名称>
      
  7. 同步本地master分支:

    git checkout master
    git pull origin master
    

这样可以确保每个功能独立开发和合并,避免直接在master分支上进行开发引发的冲突和问题。