本文介绍了如何使用 git 命令一键合并 dev 分支到 main 分支或 master 分支的方法,以及如何解决合并过程中可能出现的问题。

在进行代码开发时,我们通常会使用 git 来管理代码版本。在多人协作开发时,我们通常会使用分支来进行代码开发。在开发完成后,我们需要将分支合并到主分支上。本文将介绍如何使用 git 命令一键合并 dev 分支到 main 分支的方法。

image-20230626103757502

基本流程

我大概讲解下思路,基本就以下几个步骤,非常简单。

判断是否有未提交树

在进行分支合并之前,我们需要先判断当前分支是否有未提交的内容。如果有未提交的内容,我们需要先将其提交。否则,分支合并将会失败。

if [ -n "$(git status -s)" ]; then
  echo "有未提交的内容,请先提交"
  exit 1
fi

切换到 main 分支或 master

在进行分支合并之前,我们需要先切换到主分支上。

git checkout main
# git checkout master    # 切换master分支用这个

切换完后最好再判断一下是否有未提交树

合并 dev 分支到 main 分支

在切换到主分支并且没有未提交的内容之后,我们可以使用 git 命令将 dev 分支合并到 main 分支上。

git merge --no-commit dev # 使用--no-commit可以不创建新的提交,直接合并

推送

在分支合并完成之后,我们需要将合并后的代码推送到远程仓库上。

git push

切换回 dev 分支

在分支合并完成之后,我们需要切换回开发分支上。

git checkout dev

完整代码

#!/bin/bash

# 判断是否有未提交树
if [ -n "$(git status -s)" ]; then
  echo "有未提交的内容,请先提交"
  exit 1
fi

# 切换到 main 分支
git checkout main

# 判断是否有未提交树
if [ -n "$(git status -s)" ]; then
  echo "main分支有未提交的内容,请先提交"
  exit 1
fi

# 合并 dev 分支到 main 分支
git merge --no-commit dev

# 推送
git push

# 切换回 dev 分支
git checkout dev

node 用户可以写在 package.json 脚本里面 可以一键运行合并,如

{
  ...,
  "scripts": {
    "mergeMain": "./mergeMain.sh"
  },
}

运行: npm run mergeMain 即可一键合并

image-20230626104046091