Skip to main content

Importation d’un dépôt Git externe en utilisant la ligne de commande

Si votre dépôt Git est stocké sur un service d’hébergement de code qui n’est pas accessible à partir de l’Internet public, vous pouvez importer le dépôt à l’aide de Git sur la ligne de commande.

Avant de commencer, vérifiez que vous connaissez les éléments suivants :

  • Votre nom d’utilisateur GitHub
  • L’URL de clonage du dépôt externe, par exemple https://external-host.com/user/repo.git ou git://external-host.com/user/repo.git (ou bien avec user@ devant le nom de domaine external-host.com)

À des fins de démonstration, nous allons utiliser :

  • Un compte externe nommé extuser
  • Un hôte Git externe nommé https://external-host.com
  • Un compte personnel GitHub nommé ghuser
  • Un dépôt dans GitHub.com nommé repo.git
  1. Créez un dépôt sur GitHub. Vous allez importer votre dépôt Git externe dans ce nouveau dépôt.

  2. Sur la ligne de commande, créez un clone « nu » du dépôt externe en utilisant l’URL de clonage externe. Cette opération crée une copie complète des données, mais sans répertoire de travail où modifier les fichiers. Elle garantit une exportation propre et actualisée de toutes les anciennes données.

    $ git clone --bare https://external-host.com/EXTUSER/REPO.git
    # Makes a bare clone of the external repository in a local directory
    
  3. Poussez le dépôt cloné localement vers GitHub avec l’option « miroir », ce qui garantit que toutes les références comme les branches et les étiquettes seront bien copiées dans le dépôt importé.

    $ cd REPO.git
    $ git push --mirror https://github.com/USER/REPO.git
    # Pushes the mirror to the new repository on GitHub.com
    
  4. Supprimez le dépôt local temporaire.

    cd ..
    rm -rf REPO.git
    

Si le dépôt que vous importez contient des fichiers volumineux, vous risquez de rencontrer un avertissement ou une erreur. Pour plus d’informations sur les gros fichiers et la façon de les gérer, consultez « À propos des fichiers volumineux sur GitHub ».

Pour aller plus loin