【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 --force
stable分支更新同步到master(未实测)
git switch master
git rebase stable
git push origin master