我试图找出使用Git同时同步多个开发人员使用的代码库的最佳工作流程。我有一个由我的团队负责人为我提供的脚本,它添加了我需要同步的所有代码文件,遗漏了批处理文件,编译文件等。
一般来说,我认为我应该做的是在开始处理问题之前进行同步,然后在完成测试时进行同步。但是,我担心这会导致我在撤回回购代码和发布我的代码之间的长时间失误。这意味着,例如,我可能会使用某些功能,这些功能在我不知情的情况下被破坏或修复,或者我可能会在其他人正在使用的那段时间内无意中破坏某些代码。另外,我认为发布“未完成”的代码可能是一种不好的做法,但我不确定。
如何管理我的同步,以便尽可能少地干扰他人的代码,并避免长时间的转换?欢迎任何建议。
答案 0 :(得分:2)
在这种情况下,我的策略(还有很多其他策略)将是:
1。)在您自己的存储库中为自己创建两个分支。一个有工作代码准备发布(你的发布分支)和一个用于开发/错误修正(你的开发分支)。
2。)一般情况下:您的devel分支从您的发布分支获取源加上的最新代码。这样,如果源有任何更改,您可以获取它并且是最新的。此外,如果您的开发方面有更改,您可以获取它。 (例如,您已准备好发布但只是意识到源API已更改。)。您最终会得到一个devel分支,它具有您的(稳定)更改以及源更改,以及您可以使用的(不稳定)修复。
3。)准备开发后,将您的修复分支合并到您的发布分支,并提供您的发布分支代码,以便审核/集成到潜在客户。如果有些事情发生了变化,而且确实需要修复,你可以回到第2步。)。
我们的想法是随时发布一个版本,但不断地将更改和修复流入其中,使其保持稳定和最新,同时使用来自所有源的最新代码的不稳定开发分支。
(project) src-branch ----*----*---*-----*----------*------M
\ \ /
(personal) devel/bugfix-branch ------M-*-*--*-------M-M---*--*----/--
\ / \ /
(personal) release-branch ---------------M-*---*----*--*---M----
------ time ----->
Legend: * commit, M merge
在最后一步中,您实际上提供了一个git-diff补丁,或让领导从您的发布分支( BARE 存储库)中获取您的贡献,以便审核/集成到项目源中
答案 1 :(得分:1)
如果您正在查找工作流程信息,请查看此处提供的文章http://nvie.com/posts/a-successful-git-branching-model/。它描述了一个Git工作流程(以及有助于管理存储库分支的优秀Git插件)。