When creating a component, components can be configured you can choose to configure the component to be stored in Git one of two ways:
As a self contained git repository storing the entire project and enabling you to push/pull commits to the component repository. This is the recommended approach for full functionality.
As a plain folder storing the component project as part of the Git Instance repository.
This configuration can be customized to each component and can be changed at any point.