You have two basic options.
- The easiest is to clone the buildroot repository (it's not very large) and create your own branch based off a release tag. This makes it easy for you to make modifications to buildroot, but it is difficult to make global tags and branches (i.e. giving the same tag to buildroot and to your own code). However, if you want to combine it with the repository of your own code (so everything can be tagged together), you have to use git submodules or subtree merging (neither of which is very convenient), or you have to keep it as a separate repository and use the second solution for integration.
- You can base your product on a buildroot tarball and write a build script that downloads the tarball, extracts it, configures it (by calling *make xxx_defconfig*) and builds it. The recently added BR2_EXTERNAL mechanism (to be released in 2014.02) makes it easy to keep your own additions outside of the buildroot tree. However, if you need to change anything in the core infrastructure, you have to apply patches on the downloaded tarball, which is inconvenient.
It certainly is not a good idea to extract a buildroot tarball in your repository and import it like that, because that makes it difficult to update your buildroot tree or even to apply upstream patches. If you do want it in your own repository, use git subtree merge so that at least you keep the upstream history.
A third option is to use Android's repo tool to combine the git repositories of buildroot, linux, your own code and other packages you modify. This combines the best of the two options I gave (easy to modify and supports global tags/branches). But I've never tried that myself so I can't promise that it will work well.