【发布时间】:2019-07-24 22:11:35
【问题描述】:
我正在开发一个系统作为一个小团队(3 人)的一部分。该开发已经运行了几年,可能还有一年左右的时间。我们使用 git 进行版本控制,一般在master 上进行开发,使用pull 和push。
大约六个月前,当我大约 75% 完成了一项新功能的开发时,项目优先级发生了变化,我需要开始开发第二个功能。在开始新的开发之前,我将大部分未完成的开发提交给了一个新的分支 - parked。第二个功能变成了第三个和第四个 - 我相信你对这个场景很熟悉。
我们现在几乎准备好恢复第一个功能的开发,我想恢复停放的代码。同时,我们已经向部分不需要(原始)首发功能的用户预发布了该系统。
我的直觉是将主干中的更改合并到 parked 分支上
$ git checkout parked
$ git merge origin/master
以便在我们支持master 上的外部用户的同时有地方继续/完成开发并解决任何问题。最终(我希望很快)我会将更改从 parked 合并回 master。
我在 stackoverflow 上发现了其他几个似乎处理类似问题的问题。 Version control - which way to git merge 建议最初从parked 合并到master,以便允许使用git log --first-parent;我们目前没有广泛(任何)使用这个命令——我们是否遗漏了一些可能有用的东西? Which way to merge with git 推荐使用git rebase;另一个我们目前不使用的命令 - 我们应该使用吗?
在开始这个项目之前我从未使用过 git,但我相信我熟悉版本控制概念。
我仍然倾向于遵循我的第一直觉,从master 合并到parked 开始;在那里完成开发,然后将更改合并到master,但我看到有有效的替代方案。我目前不了解替代方案的优缺点 - 请有人解释一下。
【问题讨论】:
-
首先将您的功能重新定位到 master 上。在 master 上工作是一个糟糕的主意。
标签: git