将FOSUserBundle添加到项目git存储库

问题描述:

I use composer to install FOSUserBundle in Symfony2, I can't add the bundle to my project git repository.

I found in FOSUserBundle there has a .git directory and has its own config.

When I use git add -A always get "commit or discard the untracked or modified content in submodules".

Can you help to show how to add this bundle to my repository?

Thanks in advance.

我使用composer在Symfony2中安装FOSUserBundle,我无法将该包添加到我的项目git存储库。 p>

我在FOSUserBundle中发现有一个.git目录并且有自己的配置。 p>

当我使用git add -A时,总是得到“提交或丢弃 子模块中未跟踪或修改的内容“。 p>

您能否帮助展示如何将此捆绑包添加到我的存储库? p>

提前致谢。 p> div>

You could do something like this:

$ git add vendor/path/to/Bundle/*

You could also create a git submodule of the User Bundle in the src/FOS/UserBundle/ directory.

git submodule add <git@github ...> src/FOS/UserBundle

If you are going to do this you shouldn't use composer to install this dependency.

BUT Before you start adding third party bundles to your own repository ask the following questions:

  1. Do you need to modify/extend the default functionality of the Bundle?
  2. Do you need to fix a bug in the code?
  3. Do you need to re-write big chunks of the original code to fit your specific use case?

If your answer to #1 is yes: You want to take a look at these resources

The code you end up with will sit on top of the user bundle and it can go in your own repository.

If your answer to #2 is yes:

  • Make sure it is really a bug (read the docs).
  • Create an issue on github.
  • Create a fork from the original repo.
  • Fix the bug in your fork.
  • Submit a pull request.

See more information in the Contributing to a project section, and the Contribute Code for Symfony for general guidelines on how to contribute to projects.

If your answer to #3 is yes:

Create your own fork of the user bundle and work with that. Add the fork to your own project as a sub-module or create a packagist package that can be installed via composer.

The reason why the bundle is not added is because of .gitignore file that exempts 'vendor' folder , where all the bundles resides.

What you can do is push new 'composer.json' file with bundle information.

And from the server pull the new composer and do 'composer.phar update'