2011-11-01 79 views
0

我们在我的项目上使用git,但我无法完全按照自己的方式工作。我可以用一点Git /分支专业知识做一些事情!分支策略与Git不太正确

我们使用的是按功能分支,有时候还有多个开发者正在使用某个功能。其中一个主要问题是,我们将代码留在了功能分支上,直到它被审查完毕,并且我们试图通过挤压它们来尽量减少提交次数,使审查更容易,并保持日志清洁。

开发功能的基本过程是这样的:

  • 创建本地&远程仓库主要特征的分支(如我的功能,产地/我的功能)
  • 创建我的本地特性分支(如我的功能发放)
  • 做的工作对我的功能赠款,潜在的跨多次提交
  • 揿我的功能赠款的提交与重订-i HEAD〜X
  • 衍合我的功能,授与我的功能,并合并到有
  • 推更改原产地/我的功能,并找人来审查它有

这工作得很好,除了那如果我想事实备份我的更改(例如,如果功能需要一天以上),我在文件系统上执行它,这看起来很疯狂。

因此,我不但拥有myfeature-grant,还拥有一个远程版本origin/myfeature-grant,我可以将更改作为备份推送到该版本。这个问题来了,当我想压缩我的提交功能时,因为我不能将这些提交到origin/myfeature-grant,所以我必须删除origin/myfeature-grant。 (由于远程存储库设置,无法执行-f)。

所以我的问题是,如何在这种情况下使用git?我考虑的一些选项有:

  • 只要删除产地/我的功能 - 本地(但我不喜欢是没有备份,甚至几分钟,而我合并的东西)
  • 不要壁球的提交,使审查与更好的工具更容易
  • 使用了不同的策略完全

(我不知道有哪些跨度超过一天也将解决它的变化,但是这不是我们正处在)。

对不起,很长的问题,感谢您坚持下去!

回答

2

对于您来说还有一个选择:在审阅之前,从功能分支开始的同一点创建新分支而不是功能分支;之后,将功能分支更改合并到git merge --squash的新分支中,并通过此新分支进行审阅。

(虽然我投了更好的工具。)

1

你可以问回购服务器管理员给你额外的回购在其中您可以强制推送。