是否有 GIT 的替代方案或适用于小型团队的快速工作流程?

Is there an alternative for GIT or a fast workflow for small teams?

我们是一个小团队(2 名开发人员,1 名绘图员)从事 android 工作室项目,我们正在使用 GitLab。问题是我们发现通过分支然后合并请求添加功能的经典方法不适合我们的情况。我们倾向于每天进行更改,而且更改速度很快。

我的同事告诉我他以前用过的一个工作流程,就像是:你锁定了你想要处理的代码部分,然后即使他们不知道你有,也没有人可以更改它锁定它,当他们尝试 add/edit/delete 一些被锁定的东西时,他们不能,当你完成后,你可以解锁它,现在其他人可以进行更改。

我的问题是 :

  1. 除了 git,还有其他选择吗?您有一种源代码控制器,并且不需要(/很少)每天修剪?
  2. 如果 git 是唯一的方法,除了 Branch --> 添加新功能 --> 合并之外是否有快速的工作流程?

你总是可以直接推送到你的主分支(通常是“master”),然后就不需要创建分支了。但是,我强烈建议让团队的其他成员在审核您的更改之前将它们推送到“master”。 这意味着您需要创建分支和合并请求。起初可能看起来不方便,但也许您只需要正确的工作流程。

您可以始终停留在同一个本地 Git 分支上,尽早并经常提交,但只推送“好的”提交,而不是一直检查短期分支。

假设您的本地分支包含 10 个提交。

  • 6 个提交已准备好审查/合并
  • 剩下的 4 个提交是 WIP,你想在推送它们之前修改它们。

然后您可以使用 git rebase -i(或更快的替代方法 git revise -i)重新排序您的分支,以便“好的”提交排在第一位。然后你可以使用这个命令将它们推送到 GitLab 上的一个新分支,这允许你创建一个合并请求:

git push origin HEAD~4 refs/heads/the-new-branch

这大致就是this blog post

中描述的工作流程

如果你想更进一步,我已经写了一个工具(目前)叫做 git-branchless,它允许你做同样的事情,但是你可以推送任意数量的分支与你的提交本地分支,无需在每次推送之前重新提交提交。


这些工作流称为补丁堆栈工作流,它们使从本地分支中提取可审查的更改块变得容易。 Phabricator 和 Gerrit 等其他系统专为该工作流程而设计,但如上所述,它也适用于 GitLab/GitHub.

从技术上讲,您要求 Git 的替代方案。我将你的问题解释为“如何在没有太多开销的情况下进行代码审查”,它可能对 Mercurial 和 Fossil 等其他 VCS 有类似的解决方案,但主流网站如 GitLab.

的支持较少