26 votes

Faites une copie locale d'un dépôt git distant

Je ne suis pas très familier avec la terminologie ou les pratiques et procédures de contrôle de version.

Voici ce que je veux faire :

  1. Je veux télécharger un dossier à partir d'un dépôt git sur Internet. Le clonage est-il la bonne méthode pour le faire ? Ne va-t-il pas conserver les fichiers de métadonnées inutiles ? Y a-t-il un moyen de faire un téléchargement "propre" ?

  2. Je veux mettre en place un dépôt local qui contient ce dossier sur lequel je peux maintenant utiliser le contrôle de version. Autrement dit, lorsque je commit, mon dépôt local est mis à jour.

  3. Enfin, je veux que ce dépôt local soit accessible sur le réseau local, de sorte que je puisse le télécharger depuis n'importe quelle autre machine sur le LAN également.

21voto

VonC Points 414372
  1. Le clonage est la bonne méthode, mais il téléchargera tous les répertoires de votre dépôt distant Git.
    Voir git clone de Git Reference.
  2. La commande de clonage créera un dépôt avec un arbre de travail déjà vérifié dedans, et un .git représentant l'intégralité de votre dépôt
  3. Vous devez avoir au moins un chemin partagé pour que d'autres puissent cloner/tirer/pousser votre dépôt.
    Voir protocole local git.

Si vous n'êtes pas familiarisé avec ces opérations, je vous recommande de suivre les exercices simples proposés par git immersion.

3voto

foobar Points 31

Vous ne pouvez pas télécharger des fichiers ou des dossiers individuels à partir d'un dépôt git, car git suit l'état complet d'un projet dans son ensemble, pas seulement des fichiers individuels. Il est possible de cloner uniquement un ensemble limité de révisions (appelé clonage peu profond) à partir d'un référentiel distant, mais de tels clones sont restreints à un ensemble limité d'opérations, par exemple vous ne pouvez pas cloner à partir d'un clone peu profond, ou pousser quelque chose à partir d'un tel référentiel.

Si la taille d'un dépôt git vous dérange, vous pouvez utiliser git gc pour que git réorganise la base d'objets, ce qui peut parfois entraîner des améliorations de taille.

Lorsque vous voulez avoir un cache local, vous pouvez utiliser git clone --mirror $REMOTE_URL pour créer un clone, qui

Vous pouvez cloner de nouveaux dépôts de travail à partir de ce dépôt de cache local, et soit pousser directement dans le référentiel en amont (vous devez git remote add upstream $REMOTE_URL dans votre copie de travail pour ajouter le lien vers le référentiel en amont, ensuite vous pouvez git push upstream), ou vous pouvez pousser dans le dépôt de cache local, et pousser vers le référentiel en amont à partir de là.

3voto

Philip Oakley Points 3825

Alors que git clone est correct pour les étapes 1 & 2, vous devrez peut-être lire quelques livres sur git comme Progit / Community book, etc. pour avoir une idée précise de la meilleure approche pour l'étape 3 et de la philosophie de git.

Git, en tant que VCS distribué, essaie de éviter le "dépôt central unique" que votre "répertoire local soit accessible sur le réseau local" pourrait suggérer. Vous pouvez avoir un dépôt nu sur le réseau, qui permet à plusieurs personnes de pousser/tirer à partir de celui-ci, mais ce n'est pas la même chose que d'avoir votre dépôt local sur le réseau, avec un répertoire de travail, et que vous seul l'utilisez comme s'il s'agissait d'un lecteur local.

2voto

user885074 Points 453

Oui, 'git clone' est la bonne méthode à suivre. Cela vous permettra d'obtenir toutes les données et de faire des commits. Tant que le nouveau dépôt est visible sur le LAN, d'autres ordinateurs devraient également pouvoir le cloner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X