后退当Drupal处于CVS时，我在Git存储库中有我的网站，然后通过CVS中拉核心并通过CV。两个系统愉快地共存，我可以跟踪对所有内容的更改，并使修补程序添加到Control模块中。现在有Git我不确定是否只需下载Contrien and Core并检查它进入我的网站的Git存储库，或者也许使用子模块？
Back when drupal was in CVS I had my sites in a git repository and then pulled in core and contrib via CVS. The two systems happily co-existed and I could track changes to everything and make patches to contrib modules. Now with git I am unsure whether to just download contrib and core and check it into my site's git repository, or maybe use submodules?
I am wondering if there are any best practices on this yet? I am particularly puzzled about how to have core as a submodule if my repo uses drupals root directory as its own root?
Not exactly the same question as https://drupal.stackexchange.com/questions/260/deploying-drupal-with-git but I have the same answer for you.
I think it can be useful to have Drupal Core as a real check out, makes it for example easier to track hacks. Because sometimes, there simply is no other way, be it changes to .htaccess or maybe you applied some patches for bugs which affect you directly.
As you shouldn't be hacking core, reverse your thinking: instead of making core a submodule of your site, make your custom code a submodule of core. Once you clone the core repository, you can do whatever you want to it, including adding your own submodules to it.
Alternatively, consider not using the core git repository for your site and update to the latest release using other functions, like drush. This way, you'd only have to submodule contrib modules. Unless you're contributing to core or doing bleeding edge things that depend on bug fixes that haven't made it into a release yet, the utility of getting all commits via VCS is minimal.