在相互依赖的多个 git 分支上工作

Working on multiple git branches that are dependent on each other

我在 Git 上维护一个项目的 4 个分支,结构如下。

问题是我创建了最后一个 "authentication" 分支并从该分支添加了一些代码。现在,我切换到 "teacher" 分支继续工作。但是,我需要在 "authentication" 模块中添加一些功能才能在 "teacher" 模块上工作。但是我还没有完成 "authentication" 模块的工作以进行合并。使用 git 处理此问题的正确方法是什么?谢谢

听起来你的分支相互依赖,这给你带来了问题。分支依赖性可能是由于分支越来越大并且包含太多东西而引起的。

这意味着您可以从更早的合并较小的东西中获益!但是看起来您不想在 "complete".

之前将 teacherstudent 合并到 master

听起来 您需要一个地方来合并已完成但可能尚未准备好发布的工作

如果您正在考虑将 master 作为一个仅包含已完成功能的分支,也许您需要另一个名为 develop 的分支,该分支允许不包含全部功能,但允许合并较小的步骤?

然后你可以这样做:

  • 做一些与teacher相关的功能,合并到develop
  • student 相关功能创建一个新分支,合并它们以进行开发
  • 重复此操作直到 develop 看起来像您可以发布的东西
  • 合并 developmaster 并在新版本中添加标签

这意味着无论您在 teacher 的工作期间进行了哪些系统改进,它们也将在 student 的工作期间快速为您提供。这同样适用于身份验证等其他功能。

Don't let your feature branches stay unmerged for more than a few days.
Unmerged work is waste!

更多阅读:A successful Git branching model

这通常发生在等待 缓慢的代码审查 时,而您的新更改堆积在 小的可管理分支的顶部也需要审查 .一旦你深入到 7 层并在链的底部进行更改,更新就变得非常耗时......

所以 我创建了这个脚本 来为您进行合并! (它会因错误或合并冲突而停止) https://gist.github.com/brennemankyle/6770781bc43c8d2b03988c4c89867871