Il corto di ciò che è di seguito: Voglio spingere i messaggi di commit in una sottostruttura, ma solo i messaggi che si applicano a quell'albero. Come faccio a fare questo?git subtree push change to subtree project
ho due progetti, Master
e Slave
. Slave
viene estratto come una sottostruttura di Master
estratto da lib/slave
via git subtree merge --prefix=lib/slave --squash projects/slave
dove projects/slave
è un ramo che Slave
è stato estratto in:
Filiali:
maestri progetti/slave → Slave
Ora Sto lavorando sul mio ramo master
, effettuando commit su file che fanno parte di entrambi i progetti, tutto procede senza intoppi. Ora voglio spingere modifiche al Slave
:
- git checkout schiavo
- git merge ??? master
Se eseguo un'unione normale, viene eseguito il commit di ogni commit da master, anche se non sono stati modificati file in lib/slave
. Oppure posso fare un --squash
e ottenere solo un singolo commit, ma perdo i messaggi di log.
Quindi, come posso ottenere i messaggi di registro appropriati? per esempio. se il mio master
storia di log è:
- immagini aggiunti a padroneggiare
- file modificati in schiavo solo
- più cambiamenti di padroneggiare solo
- file modificati nel master e slave
I' d lo voglio aggiunto a Slave
:
- file modificati in schiavo solo
- file modificati in master e slave
Gitslave (http://gitslave.sourceforge.net/) potrebbe essere stata un'alternativa interessante nel tuo caso. – VonC
@VonC - Uno dei problemi principali che vedo con gitslave è che sembra lanciare i comandi a ciascun repository, facendo effettivamente 'git commit -m" messaggio di commit "" su ciascun repository.Quindi se qualche sviluppatore non lo sta utilizzando, stiamo per incontrare problemi di sincronizzazione, giusto? –
Forse la domanda più stupida del mondo, ma perché non c'è 'git log' sufficiente qui? Questo ti darà solo le modifiche pertinenti al tuo ramo di schiavo quando lo pubblichi nelle tue directory. Il tuo dolore nel disordine del cambiamento, o è solo nel display? –
MrGomez