Git仅从特定文件夹合并

我为客户端X创建了一个rails网站。我现在有一个客户端,Y,他想要一个与客户端X完全相同的网站,但是有一个不同的皮肤。

我从clientXcode创建了一个git分支,并将其命名为clientYcode。 然后,我对视图进行了所有更改,使其看起来与众不同,lala,同一个网站,具有不同的外观。

现在这里是我对git不了解的内容:我在视图,模型和控制器中对clientXcode进行了很多更改; 现在我想将这些更改合并到clientYcode中,排除任何视图更改。 由于视图,模型和控制器在rails中都有自己的文件夹,我希望能够做到这样的事情:

git merge client_x_code 'app/controllers/*', 'app/models/*' 

问题1:使用git可以实现这样吗? 如果是这样,我该怎么做?

问题2:分支是制作项目副本的最佳解决方案吗?

那么我找到了解决问题的最简单方法……

 git checkout clientYcode git checkout clientXcode "app/controllers/" git checkout clientXcode "app/models/" 

这就是我想要的!

最简单的操作是合并所有内容,但要保留的目录内容除外。
您可以通过在该目录中添加合并驱动程序来实现这一点,因为我如何告诉git始终为特定文件上的冲突合并选择我的本地版本? 问题详情。

有了这个合并驱动程序,Branching在这种情况下是一个很好的解决方案。


提取:

我们在dirWithCopyMerge目录中定义了一个.gitattributes文件(仅在发生合并的分支中定义: myBranch ),我们有一个.git\config文件,现在包含一个合并驱动程序。

 [merge "keepMine"] name = always keep mine during merge driver = keepMine.sh %O %A %B 
Interesting Posts