Clone a repository
Cloning a repository
- From the repository, click + in the global sidebar and select Clone this repository under Get to work.
- Copy the clone command (either the SSH format or the HTTPS).
If you are using the SSH protocol, ensure your public key is in Bitbucket and loaded on the local system to which you are cloning. - From a terminal window, change to the local directory where you want to clone your repository.
Paste the command you copied from Bitbucket, for example:
Clone over HTTPS:$ git clone https://username@bitbucket.org/teamsinspace/documentation-tests.git
Clone over SSH:$ git clone ssh://git@bitbucket.org:teamsinspace/documentation-tests.git
If the clone was successful, a new sub-directory appears on your local drive in the directory where you cloned your repository. This directory has the same name as the Bitbucket repository that you cloned. The clone contains the files and metadata that Git requires to maintain the changes you make to the source files.
Cloning a mirror repository
You can use SourceTree, Git from the terminal, or any client you like to clone your Git repository. These instructions show you how to clone a mirrored repository using Git from the terminal. Read more about Smart Mirrors.
- Navigate to the repository in Bitbucket.
- Click the Clone button.
- If mirrors are configured, use the Clone from dropdown to select the mirror closest to you–the clone URL changes.
- Copy the clone URL (either SSH or HTTPS).
If you are using the SSH protocol, ensure your public key is correctly configured. - Launch a terminal window.
- Change to the local directory where you want to clone your repository.
Enter
git clone
followed by the copied clone URL.
The command and clone URL together would look like this:$ git clone ssh://git@bitbucket-au.example.com:7999/upstream/PROJ/repo.git
If the clone was successful, a new sub-directory appears on your local drive. This directory has the same name as the Bitbucket repository that you cloned. The clone contains the files and metadata that Git requires to maintain the changes you make to the source files.
You cannot push to a mirror!
Mirrors are read-only. After cloning from a mirror, you must update your remote push URL to point to the primary Bitbucket Data Center instance.
Update your remote push URL
Since you cannot push to a mirror, after cloning from a mirror you need to update your remote push URL to point to the primary (upstream) instance.
To update your push URL
- In the repository on Bitbucket Server, click the Clone button.
Select a mirror in the Clone from dropdown, then copy the command that looks like this:
git remote set-url --push origin ssh://git@bitbucket.example.com:7999/PROJ/repo.git
- In the terminal, navigate to the cloned directory then run the command.
Your remote push URL now points to the primary Bitbucket Data Center instance.
Update your remote push URL in SourceTree
Since you cannot push to a mirror, after cloning from a mirror you need to update your remote push URL to point to the primary (upstream) instance within SourceTree.
- In the repository on Bitbucket Server, click Clone.
Select a mirror in the Clone from dropdown, then copy the command that looks like this:
git remote set-url --push origin ssh://git@bitbucket.example.com:7999/PROJ/repo.git
You won't need the commands, only the push URL (the bit that starts after
ssh://
).- Within SourceTree, open your repository settings.
- Select the origin repository path, then click Edit Config File...
A text editor appears. Within the Config File, under
[remote "origin"]
, enterpushurl =
then paste only the push URL after=.
The config file should look like this:pushurl = ssh://git@bitbucket.example.com:7999/PROJ/repo.git
- Save and close the Config File. Click OK to close the Repository Settings screen.
Your remote push URL within SourceTree now points to the primary Bitbucket Data Center instance.