防止某些提交/代码合并到主服务器

OSd*_*ave 4 git merge magento git-merge git-flow

对于我正在进行的项目,我们决定开发一个工具来帮助开发,因此这不应该在生产中.
所以我想知道,因为git非常棒,如果有一个功能可以阻止某些文件(是的,只有文件:这是一个Magento项目,我们要开发的工具将在他自己的模块中,没有交集应用程序的其余部分)将合并为master,但应该在其他分支中可用.
我们正在考虑使用git-flow,如果这有帮助的话.所以我们将拥有主人,我们将从中创建开发,从中创建我们所有的功能分支.我们的想法是让这个模块开发,但永远不会合并回主人.

我现在在想,只是在主分支中忽略那些文件(.gitignore),这会有用吗?

编辑1:项目结构
我觉得我必须提供有关项目结构的更多信息,它来了:

+ main_folder/
    + magento/
    |---+ app/
    |   |--+ code/
    |   |  |--+ community/
    |   |  |--+ core/
    |   |  |--+ local/
    |   |     |--+ Namespace1/
    |   |        |--+ Module1/
    |   |        |--+ Module2/
    |   |     |--+ Namespace2/
    |   |        |--+ Module1/
    |   |        |--+ Module2/
    |   |--+ design/
    |   |  |--+ frontend/
    |   |     |--+ default/
    |   |        |--+ default/
    |   |           |--+ layout/
    |   |           |--+ template/
    |   +  js/
    |   +  lib/
    +  ezpublish/
Run Code Online (Sandbox Code Playgroud)

开发工具模块必须包含在不同位置的主项目(仅magento部分)中,即app/code/local/Namespace1/Module3 /,app/design/frontend/layout/dev.xml,app/design/frontend/template/dev/tool.phtml和js/dev /

编辑2:子模块选项
探索@VonC的答案,这就是我所做的:

  • 在分公司主人:
    • git submodule add git@github.com:path/to/submodule.git devtool
    • cd devtool
    • git checkout 123abc #submodule的初始提交
    • cd ..
    • git add devtool
    • git commit -m"在初始提交时添加了子模块"
  • 在分支发展:
    • cd devtool
    • git checkout abc213 #submodule的最后一次提交
    • cd ..
    • git add devtool
    • git commit -m"最后一次提交时的子模块"
  • 回到分公司主人:
    • 触摸.gitattributes
    • 在.gitattributes我已经把这个: devtool merge=ours
    • git add .gitattributes
    • git commit -m".gitattributes directive"

但是master中的子模块具有最后一次提交的内容,如果我检查master中的inital commit并将checkout返回开发,那么初始提交仍然存在(当我想要开发时的最后一次提交时).
所以我显然做错了什么,但是什么?

Von*_*onC 11

我真的建议使用子模块在自己的仓库中隔离一组文件.

这个想法是:如果你使用的是子模块,你需要在父目录中做的就是阻止一个元素(只有一个)的合并:记录所述子模块的SHA1 的特殊条目.
您不必担心子模块文件的合并.

您可以:


归档时间:

查看次数:

737 次

最近记录:

12 年,3 月 前