Comment cloner ou télécharger un sous-dossier de référentiel dans git ?
某草草2017-05-02 09:39:03
0
3
970
L'ensemble du référentiel est énorme. Je ne suis intéressé que par un seul des dossiers et je ne souhaite pas cloner l'intégralité du référentiel du projet.
La façon dont git stocke les fichiers est différente de CVS/SVN Lorsque vous clonez un référentiel git, vous clonez toutes les données du référentiel, plutôt que seulement les quelques fichiers dont vous avez actuellement besoin.
Les versions après Git 1.7.9.5 permettent d'exporter des fichiers individuels de référentiels distants, tels que
git archive --remote=ssh://host/pathto/repo.git HEAD README.md # 导出 README.md 这个文件
Si vous avez déjà effectué une opération de clonage et que le fichier dont vous avez besoin se trouve dans l'historique des validations, vous pouvez utiliser la commande git log pour trouver la valeur de hachage de la validation, puis exécuter la commande suivante :
git checkout hash-id path-to-file
Spécialement, si votre code est un projet public, vous pouvez également faire ceci :
La façon dont git stocke les fichiers est différente de CVS/SVN Lorsque vous clonez un référentiel git, vous clonez toutes les données du référentiel, plutôt que seulement les quelques fichiers dont vous avez actuellement besoin.
Les versions après Git 1.7.9.5 permettent d'exporter des fichiers individuels de référentiels distants, tels que
Si vous avez déjà effectué une opération de clonage et que le fichier dont vous avez besoin se trouve dans l'historique des validations, vous pouvez utiliser la commande
git log
pour trouver la valeur de hachage de la validation, puis exécuter la commande suivante :Spécialement, si votre code est un projet public, vous pouvez également faire ceci :
Convient au codage
Pour GitHub
Ma solution :
Prenons comme exemple le sous-répertoire https://github.com/geekhac/to... :
git init todomvc && cd todomvc
git config core.sparsecheckout true //Défini pour autoriser le clonage de sous-répertoires
echo '/examples/react/*' >> .git/info/sparse-checkout //Définissez le chemin du sous-répertoire de l'entrepôt à cloner
git distant ajouter l'origine https://github.com/geekhac/to...
git pull origin master
Entrez le dossier qui vous intéresse, exécutez
git init
pour initialiser le fichier etclone
accédez à votre emplacement local