Github分支和默认分支之间的关系,合并后还存在吗

john
john 在知识的海洋中遨游

0 人点赞了该文章 · 521 浏览

在 GitHub 上,分支(branch)是版本控制系统中一个重要的概念,用于并行开发、测试和发布不同的代码版本。默认分支(default branch)则是仓库的主分支,通常用于生产环境的代码。理解分支和默认分支之间的关系,有助于更好地管理代码和协作开发。

一、分支的概念

  1. 分支(Branch)

    • 分支是版本库的一个独立开发线,可以独立地进行代码修改、调试和测试。
    • 每个分支都有一个指向最新提交的指针(commit),通过这个指针可以追踪分支上的代码变化。
    • 典型用途包括开发新功能(feature branch)、修复问题(bugfix branch)、进行实验性开发(experimental branch)等。
  2. 默认分支(Default Branch)

    • 默认分支是创建仓库时默认生成的分支,通常命名为mainmaster
    • 默认分支一般包含生产环境的稳定代码,其他分支上的代码在经过测试和审查后合并到默认分支。
    • 默认分支的主要职责是发布、部署和维护稳定版本的代码。

二、分支与默认分支的关系

  1. 创建新分支

    • 新分支通常是从默认分支派生出来的,继承默认分支的代码基线。
    • 创建新分支的命令:

      git checkout -b new-feature
  2. 开发和测试

    • 开发人员在新分支上进行开发和测试,确保对默认分支的影响最小化。
    • 分支上完成的工作会通过Pull Request(PR)请求合并到默认分支。
  3. 合并到默认分支

    • 当新分支上的工作经过审查和测试后,可以合并到默认分支。
    • 合并操作可能会引发冲突,需要手动解决。
    • 合并命令:

      git checkout main git merge new-feature
  4. 保护默认分支

    • 为了保护默认分支的稳定性,通常会设置一些保护规则,如需要PR审批、必须通过CI测试等。
    • GitHub 设置默认分支保护规则:
      • 进入仓库的Settings > Branches。
      • 在Branch protection rules中添加保护规则。

三、示例流程

  1. 创建新分支


    git checkout -b feature-xyz
  2. 在新分支上进行开发

    • 修改代码。
    • 提交更改:

      git add . git commit -m "Add new feature xyz"
  3. 推送到远程仓库


    git push origin feature-xyz
  4. 创建Pull Request(PR)

    • 在GitHub上,创建一个PR请求将feature-xyz分支合并到默认分支main
    • PR将触发代码审查和CI测试。
  5. 合并Pull Request

    • 审查通过后,合并PR到默认分支。
    • 在GitHub上点击“Merge pull request”。
  6. 删除合并完成的分支


    git branch -d feature-xyz git push origin --delete feature-xyz

四、默认分支的设置和管理

  1. 设置默认分支

    • 可以在GitHub仓库的Settings > Branches中更改默认分支。
    • 修改默认分支不会影响现有分支和历史记录。
  2. 管理分支策略

    • 使用分支策略如GitFlowGitHub Flow来管理分支和发布流程。
    • GitFlow使用多种分支类型(如developrelease)来区分不同开发阶段。
    • GitHub Flow则是一个更简单的流程,所有的开发都基于默认分支main进行。


Github的分支合并到默认分支后还存在吗  


在 GitHub 上,当一个分支合并到默认分支后,该分支依然存在,除非你手动删除它。以下是详细的解释和操作步骤。


合并分支的过程

  1. 创建新分支:从默认分支(通常是 mainmaster)创建一个新的功能分支:


    git checkout -b new-feature
  2. 在新分支上进行开发和提交:进行代码更改并提交到新分支:


    git add . git commit -m "Add new feature"
  3. 推送新分支到远程仓库


    git push origin new-feature
  4. 创建Pull Request(PR):在GitHub上,创建一个从 new-feature 分支到默认分支的PR,请求代码审查和合并。

  5. 合并Pull Request:代码审查通过后,合并PR到默认分支。可以在GitHub上点击“Merge pull request”按钮。

合并后的分支处理

1. 合并后分支依然存在

合并PR后,new-feature分支仍然存在于本地和远程仓库中。你可以继续在该分支上进行开发,或者选择删除它以保持分支管理的清洁。

2. 删除本地分支

合并完成后,可以删除本地的 new-feature 分支:


git branch -d new-feature

如果分支尚未合并并且你强制删除它,可以使用以下命令:


git branch -D new-feature

3. 删除远程分支

合并完成后,还需要删除远程仓库中的 new-feature 分支:


git push origin --delete new-feature

示例流程

  1. 创建并切换到新分支


    git checkout -b feature-xyz
  2. 开发和提交代码


    # 编辑代码文件 git add . git commit -m "Add new feature xyz"
  3. 推送到远程仓库


    git push origin feature-xyz
  4. 在GitHub上创建Pull Request(PR)并合并

    • 在GitHub上,创建一个从 feature-xyzmain 的PR。
    • 进行代码审查,审查通过后,点击“Merge pull request”按钮。
  5. 删除本地分支


    git branch -d feature-xyz
  6. 删除远程分支


    git push origin --delete feature-xyz

注意事项

  • 保持仓库整洁:定期删除不再使用的分支,可以保持仓库整洁,方便管理和浏览。
  • 分支保护策略:确保在删除分支前,已合并到默认分支且所有更改已被审查和测试。

通过上述操作,可以有效地管理分支,确保代码库的整洁和版本控制的高效。


总结

在GitHub上,默认分支是整个项目的基线,存储着稳定和可发布的代码。其他分支在此基础上派生,用于并行开发和测试。通过合并机制和分支保护策略,可以有效管理代码版本,提高协作效率,保证代码的质量和稳定性。

发布于 2024-06-01 14:09

免责声明:

本文由 john 原创或转载,著作权归作者所有,如有侵权,请联系我们删除。 info@frelink.top

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

暂无评论

All Rights Reserved Frelink ©2025