Importing code from an existing project

Redirection notice

This page will redirect to /display/BitbucketServer/Importing+code+from+an+existing+project .

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 into Stash

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.

Assuming you have Git installed on your local machine, then:

  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 in the nav panel on the left (for example: https://username@your.stash.domain:7999/yourproject/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@your.stash.domain:7999/yourproject/repo.git 
    git push -u origin master
  6. Done! Your repository is now available in Stash.

Import an existing Git project into Stash

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

  1. Check out the repository from your existing Git host. Use the --bare parameter:

    git clone --bare https://username@bitbucket.org/exampleuser/old-repository.git
  2. Log into Stash and create a new repository (we've called it repo.git in this example).

  3. Locate the clone URL in the nav panel on the left (for example: https://username@your.stash.domain:7999/yourproject/repo.git).

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

    cd old-repository
    git remote add stash https://username@your.stash.domain:7999/yourproject/repo.git
  5. Push all branches and tags to the new repository in Stash:

    git push --all stash
    git push --tags stash
  6. Remove your temporary local repository:

    cd ..
    rm -rf old-repository

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:

    git clone --mirror https://username@bitbucket.org/exampleuser/repository-to-mirror.git
  2. Log into Stash and create a new repository (we've called it repo.git in this example).

  3. Locate the clone URL in the nav panel on the left (for example: https://username@your.stash.domain:7999/yourproject/repo.git).

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

    git remote add stash https://username@your.stash.domain:7999/yourproject/repo.git
  5. Then push all branches and tags to Stash:

    git push --all stash
    git push --tags stash
  6. Use git fetch --prune origin ('–prune' will remove any branches that no longer exist in the remote) followed by the git push commands from step 5 to update the Stash mirror with new changes from the upstream repository.

Was this helpful?

Thanks for your feedback!

Why was this unhelpful?

Have a question about this article?

See questions about this article

Powered by Confluence and Scroll Viewport