【Git】项目多个分支开发、维护与优化处理 ing
默认一个main分支
 创建两个分支
git checkout main
git pull    # 保证 main 最新git checkout -b optimize
git push -u origin optimizegit checkout -b stable
git push -u origin stable
目前三个分支 :
 main 负责日常开发
 stable 稳定发布版本,其他两个分支功能无误可以合并进来,进行版本的发布,打上标签tag进行标记
 optimize 优化分支,有重大变动先在此分支修改验证
平时在main分支开发,无误后合并到stable分支,改动相差不大可以合并到optimize分支,优化部分可以直接在optimize分支进行。
合并 master 分支代码到其他分支
以下gpt得,实测可行
- 查看当前所在分支
git branch
- 切换到 stable或optimize分支:
git switch stable      # 或者 git checkout op  
-  拉取最新的 master分支改动:git fetch origin # 获取远程的所有更新
-  使用 rebase将master上的更新应用到当前分支(stable或optimize):git rebase origin/master
以上命令实际是 把自己当前分支的提交,重新整理到最新 master 后面,形成一条直线,也相当于将远程 master 的改动合进来。
 4. 解决可能的冲突(暂未使用过):
 如果有冲突,Git 会停止并提示你解决冲突。解决冲突后:
git add <conflicted-file>  # 标记已解决冲突的文件
git rebase --continue      # 继续 rebase 操作
-  推送到远程仓库: 
 由于使用了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
运行
./auto_pull_all.sh
其他分支重置为master分支内容
# 切换到 optimize 分支
git switch optimize# 强制将 optimize 的内容重置为 master
git reset --hard master# 推送到远程(用 --force 覆盖远程 optimize)
git push origin optimize --forcegit switch stable
git reset --hard master
git push origin stable --forcestable分支更新同步到master(未实测)
git switch master
git rebase stable
git push origin master
