2012-01-06 26 views
6

Quando si esegue il commit in un sottomodulo git, è necessario andare al super-progetto per eseguire un secondo commit, che è il nuovo hash del sottomodulo.Hash per sottomodalità git auto-commit in super-progetto

Questo è incredibilmente fastidioso, facile da dimenticare e può causare tutti i tipi di problemi se non lo fai.

Quello che voglio fare è:

  1. confermare le modifiche nel mio modulo
  2. avere la hash commesso automaticamente nel super-progetto di
  3. hanno sia il modulo e il super-progetto spinto la loro origine remota ('git push')

Qual è il modo migliore per capire se si è in un sottomodulo, dove il super-progetto è, ecc. e automatizzare questo?

Forse una sorta di hook post-commit nel sottomodulo?

risposta

5

Hai provato git-slave? Questo è esattamente ciò che è stato progettato per fare.

Puoi anche copiarlo da solo. Si noti che ci sono 2 opzioni sul comando git stesso che possono aiutare notevolmente: --work-tree e --git-dir. Usando questi puoi agire su qualsiasi repository senza uscire dalla directory corrente.

Poi c'è anche git submodule foreach --recursive git push.

+0

strano, zero upvotes? +1, almeno. Non conosco nessuno di questi comandi;) –