# Stash Latest (2.12) : Importing code from an existing project

Created by jens@atlassian.com, last modified by pwatson on Sep 17, 2013

When creating a new repository, you can import code from an existing project into Stash. You can do this by first cloning the repository to your local system and then pushing to an empty Stash repository.

On this page:

## Import an existing, unversioned code project to an empty repository

If you have code on your local machine that is not under source control, you can put it under source control and import it into Stash. To do this:

1. Locally, change to the root directory of your existing source.

2. Initialise the project by running the following commands in the terminal:

       git init
       git add --all
       git commit -m "Initial Commit"

3. Log into Stash and create a new repository.
4. Locate the clone URL at the top right (eg.: https://username@stash.atlassian.com/scm/PROJECT/repo.git).

5. Push your files to the repository by running the following commands in the terminal (change the URL accordingly):

       git remote add origin https://username@stash.atlassian.com/scm/PROJECT/repo.git
       git push -u origin master

6. Done! Your repository is now available in Stash.

## Import a Git project to an empty repository

You can import an existing repository into an empty project in Stash. When you do this, Stash maintains your commit history.

1. Check out the repository from your existing Git host. Use the --mirror parameter to include all branches and tags:

       git clone --mirror

2. Change the remote origin in your local repository to point to Stash (change the URL accordingly):

       git remote set-url origin https://username@stash.atlassian.com/scm/PROJECT/repo.git

3. Then push all branches to Stash:

       git push origin

## Mirror an existing Git repository

You can mirror an existing repository into a repository hosted in Stash.

1. Check out the repository from your existing Git host. Use the --mirror parameter to include all branches and tags:

       git clone --mirror

2. Add Stash as another remote in your local repository:

       git remote add stash https://username@stash.atlassian.com/scm/PROJECT/repo.git

3. Then push all branches and tags to Stash

       git push --all stash
       git push --tags stash

4. Using `git fetch origin,` and the `git push` commands listed in step 3, the repository in Stash can be updated with changes from the upstream repository.

## Attachments:

import.png (image/png)
getstartpanel.png (image/png)
Importing code from an existing project - comments.pdf (application/pdf)
bitbucket-importcode.png (image/png)
bbicon_createrepo.gif (image/gif)