Selon ce que vous essayez d'accomplir, vous avez deux options. Si vous voulez pouvoir suivre les modifications des fichiers, alors je commettrais des liens symboliques. Si vous ne vous souciez pas des modifications locales, alors j'utiliserais git archive
.
Commettre des liens symboliques
Vous pouvez commettre SymLinks aux fichiers qui vous tiennent à cœur, utiliser la caisse de rechange pour les obtenir également.
ln -s contrib/completion/git-completion.bash git-completion.bash
git add git-completion.bash
Cela vous permettra de modifier les fichiers et de commettre des modifications à eux encore.
Archive git
Cela extrait simplement le contenu que vous recherchez. Les modifications ne seront pas suivies dans le référentiel.
# 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: il ressemble à github
ne supporte pas git archive --remote
. Il est toujours inclus ci-dessous au cas où quelqu'un utilise un service d'hébergement différent qui le permet.
Archive git avec --Remote
En utilisant Git Archive, vous pouvez même télécharger les modifications directement à partir d'un référentiel distant sans cloner d'abord le référentiel. L'inconvénient est que vous ne pouvez pas suivre les changements locaux avec 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 -
Vous aurez maintenant les fichiers dans le répertoire actuel.