Git, per tutto questo, non importa a cosa assomigli la struttura della tua directory. Può essere annidato all'infinito, uno spazio file ampio e piatto in una singola directory o qualsiasi altra cosa. Non importa se hai dei collegamenti simbolici che puntano a file tra le directory, non ti interessa nemmeno se hai collegamenti simbolici che puntano all'esterno dell'albero del progetto.
Inoltre non importa in quale lingua sono scritti i file, o se sono programmi, dati, immagini, ecc.
GIT DO NOT CARE. Git è un tasso di miele in questo senso.
L'unica avvertenza qui, se una directory è vuota, Git non la raccoglierà per aggiungerla al repository. Questo è il motivo per cui vedi così tante directory nude ad eccezione di un file .gitkeep. Il nome di questo file non è importante per Git, è solo una convenzione adottata da noi Gits. :)
Quindi, organizzare il tuo progetto ha comunque senso per te. Le uniche convenzioni importanti che sembrano andare su tutta la linea stanno avendo un file readme e di licenza nella root del progetto. Il particolare ambiente del tuo progetto potrebbe richiedere di più, ma poi entreremo in ulteriori dettagli.
Ancora, GIT DO NOT CARE.
Ora, per rispondere alla tua domanda specifica: basta fare un repo per ogni progetto; Git, né Github, cura:
YOUR MACHINE:
/Code
/Python
/pycoolstuff
/.git/
/.gitignore
/pymorecoolstuff
/.git/
/.gitignore
/Java
/enterpriseTiddlyWinks
/.git/
/.gitignore
/Ruby
/Rails
/RecipeApp
/.git/
/.gitignore
/Sinatra
/comicservice
/.git/
/.gitignore
Nel frattempo, su github, hai solo questi progetti come singoli repository di repository:
github.com/imacoder/comicservice
github.com/imacoder/pycoolstuff
github.com/imacoder/pymorecoolstuff
github.com/imacoder/enterpriseTiddlyWinks
github.com/imacoder/RecipeApp
Le istruzioni per affrontare il repository locale esistente dopo aver effettuato il repository Github sono proprio lì nella pagina di post-creazione che ottieni da Github:
Sulla macchina locale:
$ cd /Code/Python/new_project
$ git add --all -v # assuming you do know you want everything checked in
$ git commit -m 'some message'
$ git remote add origin [email protected]:imacoder/new_project
(Se avessi Github, crea il README e / o .gitignore (non lo faccio mai))
$ git pull origin master
(Risolvi eventuali conflitti di unione)
$ git push origin master
Boom-de-bla! Tutto è su Github.