A seconda di ciò che stai cercando di realizzare hai due opzioni. Se vuoi essere in grado di tracciare le modifiche ai file ancora, allora commetterei collegamenti simbolici. Se non ti interessa le modifiche locali, allora lo userei git archive
.
Commettere symlinks
Puoi impegnarti in sintonia nei file a cui tieni, utilizzare anche il checkout di riserva per ottenere quelli.
ln -s contrib/completion/git-completion.bash git-completion.bash
git add git-completion.bash
Ciò ti permetterà di modificare i file e di commettere ancora modifiche.
Archivio Git
Questo semplicemente estraggerà il contenuto che stai cercando. Le modifiche non verranno monitorate nel repository.
# generic
git archive <revision>:<path> | tar -xf -
#specific to your example
git clone --bare https://github.com/git/git.git ~/git-completion-bare
mkdir git-completion && cd git-completion
git archive --remote ~/git-completion-bare master:contrib/completion/ | tar -xf -
EDIT: sembra github
non supporta git archive --remote
. È ancora incluso di seguito nel caso in cui qualcuno stia utilizzando un servizio di hosting diverso che lo consente.
Archivio git con - -REMOTE
Utilizzando l'archivio Git, puoi persino scaricare le modifiche direttamente da un repository remoto senza clonare prima il repository. Il rovescio della medaglia è che non è possibile tenere traccia dei cambiamenti locali con Git.
# General form
git archive --remote <url> <revision>:<path> | tar -xf -
# your example
git archive --remote https://github.com/git/git.git master:contrib/completion/ | tar -xf -
Ora avrai i file nella directory corrente.