Opposing best practices

I’m new to the Bit, In best practice page, there is a conflict between " Prefer Ejecting Sourced Components" and " Use SCM to Keep Local Modifications".
I actually would like to not to commit source components to the SCM, On the other hand, there are some modifications that I need for a specific project. then I have 2 violating choices:

  1. keep the source component in SCM plus any project-specific modifications and never eject
  2. create a new component form the component and use that only for that specific project (ejected), but then I have to have different IDS for each component that I want to have modifications.

both of them has undesirable consequences. So which one is better than the other one? is there any third option?

Hi,

The don’t think that the practices are conflicted… It’s pretty much depends on your usecase.
If you want to have local modifications that are only relevant to a specific consumer, you should commit them locally. But other than that - it’s best to share the components.

If you need to diverge the component, and create a new one out of it - this is something we’re working to add as a feature (diverging a component to a new component), as part of supporting different lanes of development for components (as you want to keep the history, prior to the diverge).