2010-04-24 15 views
5

Al fine di ottenere un nuovo progetto Django installato e funzionante più veloce, mi piacerebbe mantenere un separato "scheletro progetto" su cui baso tutti i miei nuovi progetti. Sarebbe bello se, migliorando lo scheletro, potessi apportare questi miglioramenti ai miei progetti attivi. Come posso fare questo con git?Creazione di un nuovo progetto da uno scheletro progetto utilizzando git

Così, forse nella mia macchina repository git remota avrei 1 repo per ogni progetto e uno per lo scheletro?

  • proj-A-repo
  • proj-B-repo
  • scheletro-repo

Se voglio creare una nuova proj-C localmente basata sullo scheletro, quindi spingere il mio modifiche locali fino al server remoto in un nuovo repository chiamato proj-C-repo, come potrei farlo?

Ho letto un bel po 'di documentazione git, ma sono confuso su come andare su questo. Devo clonare lo scheletro o creare un repository vuoto e quindi tracciare un ramo remoto o qualcos'altro?

risposta

9

Questo è esattamente ciò che git (o qualsiasi DVCS) è buono a. Dare allo scheletro il proprio repository; per creare un nuovo progetto, tipicamente lo clone lo scheletro sulla workstation, si allontana, quindi lo push in un'altra posizione (ad es. myserver: repo-C). Se in seguito si migliora lo scheletro e si apportano modifiche, è possibile lavorarli in un progetto esistente con git pull myserver:skeleton e quindi unire.

+1

Questo è esattamente quello che stavo cercando. Grazie mille. – asciitaxi

+1

Per approfondire, ho trovato anche questa risposta sull'aggiunta e la rinomina dei git remotes utili: http://stackoverflow.com/questions/1221840/error-remote-origin-already-exists-on-git-push-to-new -repository – Matt

+0

Sì, la chiave sta cambiando il nome degli hook dopo il clone. È anche possibile clonare e rinominare i telecomandi direttamente sul server "centrale" prima del clone/pull sulla propria workstation. Dovresti assolutamente clonare/spingere su un repository off-workstation prima di avere più di un paio d'ore nel nuovo progetto in modo che gli altri possano vedere cosa stai facendo e hai un riferimento a cui tornare. – hobs

0

Si potrebbe fare la seguente:

Creare un repo Git che è tuo scheletro e aggiungere la roba che è in A e B pronti contro termine al vostro .gitignore. Quindi inizia nuovi repository git in posizione A e B e passa a lì.

In questo modo si finisce con:

skeleton 
+---> .git 
+---> project A 
    +-----> .git 
+---> project B 
    +-----> .git 

Ho appena provato questo e ha funzionato con un repo git all'interno di un repo git, fino a quando si aggiunge il subrepo al .gitignore ..

+0

Mi sembra un po 'strano di avere progetti di "contenuto" nello scheletro. –

+0

Penso che l'idea generale fosse che lo scheletro fosse il proprio progetto che è riutilizzabile con altri progetti. Quindi averli condividere parti della loro storia non è molto buono dato che dovresti ricondurre tutti i cambiamenti allo scheletro. Ma la selezione delle ciliegie funzionerebbe anche – Tigraine

+0

Idea cool di un repository git annidato. Può essere abbastanza utile per altre applicazioni. – hobs

0

È possibile trovare un buon esempio di scheletro di progetto con questo sbt console template

Se si clona e launch sbt, si otterrà un completamente funzionale progetto di Scala:

  • che può essere compilato, eseguito , testato e persino eclissato (da importare come progetto di eclissi) !.
  • che può essere memorizzato in un repository Git proprio, con .gitignore già configurato.
Problemi correlati