2011-03-25 124 views
8

我刚开始关闭master分支的git分支,为我的应用程序添加一些功能,这也会涉及一些接口的增加。Git,XIBs,合并

但是,我已经有一些其他功能的分支也涉及到一些接口添加。

当我完成这些分支后,我能够将这两个分支合并为主分支吗?是否有一些很好的做法,可能会以某种方式构建xib-文件,以便后续合并?

回答

6

如果我在一个分支中包含三个选项卡的选项卡视图,另一个选项卡视图中包含三个选项卡,并且其中两个选项卡相同,而一个选项则不相同我得到一个四选项卡式标签视图合并

你将极有可能a conflict后,如果修改线(涉及标签定义)是相同的。
只有在手动合并解决方案期间,您错误地留下了额外的选项卡定义,才会有4个选项卡。

查看Painless Merge Conflict Resolution in Git了解合并分辨率的文章。

3-way merge


话虽这么说,对于xibs具体而言,它的表现似乎不错:

随着Interface Builder的3版本,新的文件格式(扩展.xib)有已被添加,其功能与.nib相同,只是它存储在一个平面文件中,使其更适合存储在版本控制系统和过程中用diff等工具唱歌。

this thread总结了实际感受:

怎样的Git能够合并更改XIBs?
XIB的结构不是线性的;不能保证你只能换出XIB的一部分,然后用可用的XIB结束。
除非Git了解Apple附近的XIB,否则我不认为 可以保证可以正常工作。

这将使你额外的步骤,在发生冲突的情况下,将您的合并决议前,打开修改.xib文件在您XCode4编辑器,并检查是否都没问题。

XCode4 xib file Editor

一旦目测完成,record the merge resolution through rerere,你将在未来have potentially automatic resolution

+0

谢谢。是的,我知道git中的冲突解决方法,这个问题不是关于git的问题,而是关于git中的xibs *(xibs是Mac OS X应用程序的接口,在可视化编辑器Interface Builder中创建的,它们差不多不可能读)。 – Ibolit 2011-03-25 18:43:00

+0

@Ibolit:我明白。这似乎只会在使用'git rerere'录制合并解析结果之前,通过额外的视觉检查来完成。更多在我更新的答案。 – VonC 2011-03-25 19:36:17

+0

非常感谢。我会试一试:) – Ibolit 2011-03-25 19:53:48

0

当然,你将能够将它们合并为主。不管你如何构建你的文件,git都不关心这个问题。

+3

这是一个过于简单化:OP询问两个分支对同一个事物进行修改,即界面。他们可能会导致合并冲突。可以解决的,是的,但有些事要注意。 – Cascabel 2011-03-25 17:02:52

+4

事情是,当我解决其他文件中的冲突,我明白我在做什么,我知道什么特定的线的意思。在这种情况下,我会看到一些xml,这对我来说并不意味着什么。如果我在合并时犯了一个错误,我几乎没有机会找到正确的错误。再一次,如果我在一个分支中有三个选项卡的选项卡视图,另一个选项卡视图中有三个选项卡,并且其中两个选项卡相同,一个不相同,我会得到四个合并后的tabbed选项卡视图? – Ibolit 2011-03-25 17:20:41