Per quanto riguarda Git che potrebbe essere di un significato storico che Linus Torvalds ha risposto a questa domanda dal punto di vista concettuale nel 2007 in un discorso che è stato registrato ed è disponibile online.
La domanda è se è possibile estrarre solo alcuni file da un repository Git.
Tech Talk: Linus Torvalds on git t=43:10
In sintesi, ha detto che una delle decisioni di progettazione di Git che lo distingue da altri sistemi di gestione di origine (si cita BitKeeper e SVN) è che Git gestisce i contenuti, non i file. Le implicazioni sono che per es. un diff di un sottoinsieme di file in due revisioni viene calcolato prendendo innanzitutto l'intero diff e quindi potendolo solo ai file che sono stati richiesti. Un altro è che devi controllare l'intera storia; in un modo tutto o niente. Per questo motivo, suggerisce di suddividere i componenti liberamente correlati tra più repository e menziona uno sforzo in corso per implementare un'interfaccia utente per la gestione di un repository strutturato come un super-progetto con archivi più piccoli.
Per quanto ne so, questa decisione fondamentale sul design è ancora valida oggi. La cosa del super-progetto è probabilmente diventata ciò che ora è submodules.
Quindi, se cloniamo il ramo "XX", otterremo tutti i comandi principali da "master", giusto? O solo il singolo commit che ho fatto su quel ramo? – pablo
Se clonate (prendete) solo il ramo "XX", otterrete tutti i suoi commit, compresi quelli che il ramo "XX" ha in comune con il ramo "master". In Git commits non "* appartiene *" a un ramo. –
Ok, allora non è un clone parziale comunque da quando hai tutti i genitori e quindi l'intero repository (ok, la parte più grande che è sul master) – pablo