Article version: GitHub.com

Importing a Git repository using the command line

If GitHub Importer is not suitable for your purposes, such as if your existing code is hosted on a private network, then we recommend importing using the command line.

Before you start, make sure you know:

For purposes of demonstration, we'll use:

  • An external account named extuser
  • An external Git host named https://external-host.com
  • A GitHub personal user account named ghuser
  • A GitHub repository named repo.git
  1. Create a new repository on GitHub. You'll import your external Git repository to this new repository.
  2. On the command line, make a "bare" clone of the repository using the external clone URL. This creates a full copy of the data, but without a working directory for editing files, and ensures a clean, fresh export of all the old data.

    $ git clone --bare https://external-host.com/extuser/repo.git# Makes a bare clone of the external repository in a local directory
  3. Push the locally cloned repository to GitHub using the "mirror" option, which ensures that all references, such as branches and tags, are copied to the imported repository.

    $ cd repo.git$ git push --mirror https://github.com/ghuser/repo.git# Pushes the mirror to the new GitHub repository
  4. Remove the temporary local repository.

    $ cd ..
    $ rm -rf repo.git

Ask a human

Can't find what you're looking for?

Contact us