Git文件夹包含来自两个不同分支的文件

时间:2011-03-28 08:24:14

标签: git scripting

我只是解释一下我的情景。

我有一个用git管理的文件夹,其中包含一组自动运行的脚本。每个脚本都有一个相应的过滤器文件,用于确定要响应不同事件运行哪些文件。 E.g:

  • a.script
  • a.filter
  • b.script
  • b.filter

我有一个包含对脚本进行一些更改的分支,但我们暂时决定只使用过滤器将它们推出给某些场景。所以我们最终会得到类似的东西:

  • a.script
  • a_.script
  • a.filter
  • a_.filter
  • b.script
  • b_.script
  • b.filter
  • b_.filter

所以我需要的是从主分支获取脚本文件,并将测试分支中的脚本文件一起签出在一个具有不同名称的文件夹中。我不知道什么时候(或者如果)测试分支将合并到main中,所以我需要将更改推送到两个分支。有没有什么好方法可以使用git来解决这个问题?

1 个答案:

答案 0 :(得分:0)

您似乎已将您的附加或修改过的文件放在一个单独的分支中(我假设其名称为testing);此分支还应包含master分支中的文件(因为它是从master创建的,对吧?)。现在创建第三个分支,例如local(或unified或其他):

git checkout -b local master

现在将testing分支合并到其中:

git merge testing

这应该基本上给你所有分支机构的所有修改。请注意,此分支不适用于手动提交,您只需将mastertesting分支合并到其中,提交始终转到其中任一分支,永远不会local

这种方法需要一些纪律,因为你不应该提交local分支(除非你确信你可以rebase提交local分支到分支他们真的应该去)。此外,它在gitk看起来很混乱,因为继续合并到一个分支往往会产生一些光学噪声。这可以通过重复上面的两个步骤来清除,这将简单地重新创建local分支 - 这不是问题,因为所有更改都已提交到master或{{ 1}}。