

Can I have multiple Git repos from a single project folder? - circuitbreaker

I have a project that I want to maintain in Git.  It is a web-project that I develop in Eclipse.  Essentially, there are two components:<p><pre><code>  1) the main service engine (i.e. the Java code)
  2) the web-files (i.e. the HTML, JSP, CSS, and JS files).
</code></pre>
I'd like to maintain this all with Git but I'd like to have distinct repos for each component of the site.  So, is there a way to have multiple repos from this single project folder?  More specifically, is it possible to have multiple files from a single folder belong to different repos?
======
timtadh
if you want the files interleaved in the same folder hierarchy (ie. not
separated into engine and web-files as @shorbaji suggests) to my knowledge
there is no way to do this. I doubt any folder based version control system
will allow you to do that. You would have to use something like RCS :shudder:

If you are considering such a structure, ask your self: why? This is not a
common structure (thus the lack of tool support), but your problem is common.

If you want to separate your files into two subdirectories as suggested, I
recommend using a top level git repo to track all of it, and using git
submodule for your engine:

    
    
        projects 
          | engine # directory containing you engine code
             | .git
             | files...
          | MyProject
             | .git
             | .gitmodules
             | engine # a clone of your engine repository above
                | ...
             | the rest of your files ...
    

If you don't know how git submodule works, read the man pages.

~~~
circuitbreaker
Ya, I was thinking about doing exactly that. I figured that might be the best
option, but thought I'd ask in case there was some Git feature that I just
didn't know about. I'll probably go this way. Thanks!

------
shorbaji
If you have these components in separate folders within the main project
folder simple create a git repo within each folder.

    
    
      $cd engine
      $git init .
      $cd ../web-files
      $git init .
    

If you have one folder within the other, you can do the same but use
.gitignore

