当前位置:  开发笔记 > 开发工具 > 正文

排除Git混乱

如何解决《排除Git混乱》经验,为你挑选了1个好方法。

我刚刚继承了一个使用Git维护的项目.有一次,代码被部署到3个独立的系统上,每个系统都维护着自己的分散式Git资源库.

3个系统中的每一个都在3个不同方向上扩展了原始基础系统.3个系统中没有一个系统相互同步.一些更改在主分支上,其他更改在新分支上.

如何将3种不同的来源组合在一起,以便我可以:

    找到一个共同的基础;

    找出哪些更改是应该在所有3个系统中应用的错误修复; 和

    以理智的方式维护3个系统,以便只有一个公共分支,并将3个不同系统所需的自定义分开?

Henrik Gusta.. 13

我可能会首先将所有存储库推送到中央存储库中的单独分支,从中我可以轻松地在分支之间进行rebase,merge等.

一个好的可视化工具,如git-age,gitnub,gitx,giggle可以创造奇迹,但除非你能找到分支点,否则你的任务可能会相当繁琐.如果有类似的补丁应用于所有分支,您可以使用(交互式)rebase重新排序您的提交,使它们的顺序相同.然后你可以开始"拉上"你的分支,通过将提交放入master中来向上移动分支点.有关如何使用rebase重新排序提交的详细说明,请参见此处.

Git Howto Index提供的链接中描述了您需要采取的操作.一个好的备忘单总是很好的触手可及.此外,我怀疑Eric Sinks发布的后续文章" DVCS和DAG,第1部分 "将包含一些有用的东西(它没有,但是仍然是一个有趣的读物).

其他有用的链接有:Git Magic,Git Ready和SourceMage Git Guide

我希望所有的回购都有良好的提交消息,告诉你每个补丁的目的,这是或代码审查:)

至于如何维护自定义,我们运气如下:

我们首先将自定义代码与通用代码分离(或保持分离).然后我们尝试了两种方法; 两者都很好:

    所有部署都有自己的存储库,其中保留了自定义.

    所有部署都在"自定义"存储库中拥有自己的分支.

在第一次部署并看到第二次是事实后,我们花了一些时间来预测未来的定制/切割点,以减少定制回购(alt.1,这是我们目前使用的方法)和基础/核心的重复回购.

是的,每当我们注意到核心/定制拆分滑倒时,我们都会尝试无情地重构:)



1> Henrik Gusta..:

我可能会首先将所有存储库推送到中央存储库中的单独分支,从中我可以轻松地在分支之间进行rebase,merge等.

一个好的可视化工具,如git-age,gitnub,gitx,giggle可以创造奇迹,但除非你能找到分支点,否则你的任务可能会相当繁琐.如果有类似的补丁应用于所有分支,您可以使用(交互式)rebase重新排序您的提交,使它们的顺序相同.然后你可以开始"拉上"你的分支,通过将提交放入master中来向上移动分支点.有关如何使用rebase重新排序提交的详细说明,请参见此处.

Git Howto Index提供的链接中描述了您需要采取的操作.一个好的备忘单总是很好的触手可及.此外,我怀疑Eric Sinks发布的后续文章" DVCS和DAG,第1部分 "将包含一些有用的东西(它没有,但是仍然是一个有趣的读物).

其他有用的链接有:Git Magic,Git Ready和SourceMage Git Guide

我希望所有的回购都有良好的提交消息,告诉你每个补丁的目的,这是或代码审查:)

至于如何维护自定义,我们运气如下:

我们首先将自定义代码与通用代码分离(或保持分离).然后我们尝试了两种方法; 两者都很好:

    所有部署都有自己的存储库,其中保留了自定义.

    所有部署都在"自定义"存储库中拥有自己的分支.

在第一次部署并看到第二次是事实后,我们花了一些时间来预测未来的定制/切割点,以减少定制回购(alt.1,这是我们目前使用的方法)和基础/核心的重复回购.

是的,每当我们注意到核心/定制拆分滑倒时,我们都会尝试无情地重构:)

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有