【Git】项目多个分支开发、维护与优化处理 ing

默认一个main分支
创建两个分支

git checkout main
git pull    # 保证 main 最新

git checkout -b optimize
git push -u origin optimize

git checkout -b stable
git push -u origin stable

目前三个分支 :
main 负责日常开发
stable 稳定发布版本,其他两个分支功能无误可以合并进来,进行版本的发布,打上标签tag进行标记
optimize 优化分支,有重大变动先在此分支修改验证

平时在main分支开发,无误后合并到stable分支,改动相差不大可以合并到optimize分支,优化部分可以直接在optimize分支进行。

合并 master 分支代码到其他分支

以下gpt得,实测可行

  1. 查看当前所在分支
git branch
  1. 切换到 stableoptimize 分支
git switch stable      # 或者 git checkout op  
  1. 拉取最新的 master 分支改动

    git fetch origin         # 获取远程的所有更新
    
  2. 使用 rebasemaster 上的更新应用到当前分支(stableoptimize

    git rebase origin/master
    

以上命令实际是 把自己当前分支的提交,重新整理到最新 master 后面,形成一条直线,也相当于将远程 master 的改动合进来。
4. 解决可能的冲突(暂未使用过):
如果有冲突,Git 会停止并提示你解决冲突。解决冲突后:

git add <conflicted-file>  # 标记已解决冲突的文件
git rebase --continue      # 继续 rebase 操作
  1. 推送到远程仓库
    由于使用了 rebase,你可能需要使用 --force 推送到远程仓库:

    git push origin stable --force  # 或者 git push origin op --force
    

    注意: 使用 --force 推送时要小心,因为它会覆盖远程的历史记录。如果其他人在该分支上工作,可能会导致他们的提交丢失。确保与团队成员沟通清楚。

自动拉取合并所有分支

创建

touch auto_pull_all.sh
sudo vim auto_pull_all.sh

内容

#!/bin/bash

# 获取所有远程分支
git fetch --all

# 遍历所有本地分支
for branch in $(git branch | sed 's/^\*//'); do
  # 切换到该分支
  git checkout $branch
  # 执行拉取并合并
  git pull origin $branch
done

赋权限

gitchmod +x auto_pull_all.sh

运行

#linux下
./auto_pull_all.sh
#windows下 打开git bash
bash auto_pull_all.sh

其他分支重置为master分支内容

# 切换到 optimize 分支
git switch optimize

# 强制将 optimize 的内容重置为 master
git reset --hard master

# 推送到远程(用 --force 覆盖远程 optimize)
git push origin optimize --force

git switch stable
git reset --hard master
git push origin stable --force

stable分支更新同步到master(未实测)

git switch master
git rebase stable
git push origin master

tag 打标签

git tag 标签内容
git push origin --tags #上传所有标签

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值