Skip to content

开发流程模式

Gary Du edited this page Jun 24, 2023 · 7 revisions

以下是该项目各个分支的用途:

  • 主要分支:

    • main: 存放对外发布的版本,这里面的所有代码都是可以直接用于生产环境的。这个项目中, 向该分支push代码会触发网页自动部署
    • develop: 日常开发的主要分支,包含了项目最新的功能和代码,所有的新功能都应该基于该分支开发。
    • feature: 开发新功能都从 develop 分支出来,开发完成后合并回 develop 分支。
  • 其他分支:

    • hotfix: 生产环境出现严重 bug 时,需要及时修复,从 master 分支切出,修复后直接合并到 master 和 develop 分支。
    • release: 准备要发布新版本时,从 develop 分支出来,进行发布前的优化调整,完成后,合并到 master 和 develop 分支,然后给 master 分支打上版本标签。
    • gh-pages: Github pages Action分支, 一般来说不要手动修改, 代码push进develop分支后自动构建并更新, 用户预览develop分支的样式

分支的使用

​ 基本上大部分的日常开发都要新建一个feature分支

  1. Clone Repository

    git clone https://github.com/jacarandastock/website_devlopment_front.git

    使用 git clone 命令从GitHub克隆一个社团的代码仓库的副本到本地。这将在你的本地计算机上创建一个新目录,并下载仓库中的所有文件和版本历史。

  2. 进入代码目录

    cd website_devlopment_front

    使用 cd 命令进入到刚刚克隆的仓库的目录。

  3. Create a new feature branch

    git checkout -b feature/{your feature name}

    使用 git checkout -b 命令创建一个新的 feature 分支,并立即切换到这个新分支。

    例如:

    A 想要开发一个关于蓝楹会页面, 于是A创建了一个名字为feature/about的分支, 使用了如下命令

    git checkout -b feature/about

    B想要开发登入系统的功能, 于是B创建了一个名字为feature/loginToSystem的分支. 使用了如下命令

    git checkout -b feature/loginToSystem

    Feature name的命名规则不做太详细规定, 但是尽量见名知意, 实在不知道怎么命名就写自己的名字

  4. Make changes

    那么现在, 你就可以开始在你的新分支上进行开发工作。你可以修改文件,然后使用 git addgit commit 命令将你的改动提交到本地的 feature 分支。

    假设你正在开发一个新的功能“登录系统” 并且 already change some code ....
    git add {你改动的文件}或者 git add *
    git commit -m "你这次改动修改了什么"
    
  5. Push the feature branch to the remote repository

    git push -u origin feature/login-system

    使用 git push 命令将你的新 feature 分支(包括所有的改动)推送到远程仓库。-u 参数会设置远程仓库和你的新分支之间的 upstream tracking connection,这样在之后的 pushpull 操作中就不需要再指定分支名。

  6. Open a Pull Request 在你的 feature 分支上的所有开发工作都完成,并且所有的改动都已经推送到远程仓库后,你可以在 GitHub 网站上为你的 feature 分支创建一个新的 pull request。然后项目的其他参与者就可以查看、讨论和批准你的改动。一旦你的 pull request 被批准,你的 feature 分支就可以被合并到development分支了。

之后呢?

develop 分支包含了足够的新功能并且准备发布一个新版本的时候,我们便可以将develop分支通过pr流程合并进main分支并进行自动部署.

蓝楹会

Clone this wiki locally