Git:维护2个分支,99%的代码相似

nan*_*ano 6 java git merge maven branching-and-merging

我正在使用Maven开发一个Java项目,我需要经常部署到两个不同的weblogic环境.这两个部署之间的唯一区别是这两个文件中的一系列更改:pom.xmlweblogic.xml文件.其余文件是相同的.

我们正在为此创建2个GIT分支:dev&parallel-dev.

但是我们在维护和合并这两个分支之间的变化方面遇到了很多问题.

所有的更改都在parallel-dev分支中完成,一旦这个代码被审查和批准,我们将它合并到dev分支,除了那两个不需要合并的文件(除非修改了pom版本 - 在这种情况下我们需要仅合并版本更改,但不合并pom.xml中的其他更改).这有点乱.

我认为这种方法很混乱,可以改进,但不能真正看到.我很乐意为这个过程保留一个分支,并避免我们面临的所有那些疯狂的合并.

任何建议将不胜感激.

- 编辑 -

pom.xml的区别只是parallel-dev分支的不同配置文件:

<profiles>
<profile>
  <id>parallel-dev</id>
  <activation>
    <activeByDefault>false</activeByDefault>
  </activation>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
      <resource>
        <directory>src/test/resources</directory>
        <filtering>true</filtering>
        <includes>
          <include>env.properties</include>
          <include>more.properties</include>
          ...
        </includes>
      </resource>
    </resources>

    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
        <filtering>true</filtering>
        <excludes>
          <exclude>env.properties</exclude>
          <exclude>more.properties</exclude>
          ...
        </excludes>
      </testResource>
    </testResources>
  </build>
</profile>
Run Code Online (Sandbox Code Playgroud)

weblogic.xml不同的是上下文根名称和一个图书馆参考(这LIB也具有平行-dev的和DEV分支).

Bot*_*tje 0

我会做以下事情:

  1. 隔离您对分支中这两个文件所做的更改dev
  2. 销毁dev分支并从parallel-dev分支重新创建它。
  3. dev在新提交中重新应用分支上的更改。

现在,每当parallel-dev分支上发生新开发时,请切换到dev分支并执行以下操作:

git rebase parallel-dev

(或 GUI 工具中的等效操作)。这会将dev分支重置为最新版本parallel-dev,并将单独的更改重新应用到这两个 xml 文件。

如果更改碰巧parallel-dev与孤立的更改重叠,您仍然会遇到合并冲突,但否则您应该可以继续了。(尽管为了安全起见,我会仔细检查 .xml 文件)