If you want to access GitLab via SourceTree, you can connect it with an account profile now. Another method is to connect GitLab by using the clone function with SSH key.
What Will We Learn (Method 1)
- Access GitLab with personal access token
What Will We Learn (Method 2)
- Create SSH key
- Access GitLab via SourceTree with SSH key
Method 1: Connect with Remote (Account Profile)
Since SourceTree 3.0, it adds support for additional remote hosting services. They are GitHub Enterprise, Microsoft Visual Studio Team Services, and GitLab (Cloud, CE, EE).
Create Personal Access Token
To connect GitLab with Remote, personal access token is required for authentication. To create personal access token, login GitLab and go to Settings.
After that, select Access Tokens from the sidebar. You will create your personal access token here. Give access token a name. You are able to set an expiry date for your access token. By leaving it blank, access token will never expire. Next check the api and read_user checkbox, it is required for SourceTree to connect to GitLab remotely. Click on Create personal access token to complete the setup.
Next open up your SourceTree, click on Remote and click on Add an account.
Select GitLab as the hosting services, and choose HTTPS as the Preferred Protocol. Click on Refresh Personal Access Token.
You will be prompted to enter the username and password. After entering the username and password then press OK to continue.
Do take note that email address you used to login GitLab is not your username. If you do not know your username. Go to GitLab and click on the top right profile icon. The text after @ is your username. In this example, it would be aword-test.
Furthermore, the password is your personal access token code. It only shows you once you created your personal access token. Make sure save your personal access token code in a safe place.
Then you have completed the steps to connect GitLab with SourceTree. If you connect successfully, you will able to see your repositories in SourceTree.
Method 2: Connect with SSH Key
This method is useful for users who are not using SourceTree 3.0 and above.
What is SSH Key
The Secure Shell (SSH) key is based on the principle of Public-key cryptography. It is used as a way of authentication. By generating an SSH key pair, you will get a private key and a public key. You can image public key as a padlock. You can distribute it to any systems on the Internet. Private key is like a key of the padlock. You should keep the private key securely and avoid it from being compromised. To access any system with public key, you need to use the private key to authenticate yourself.
Create SSH Key
To create SSH key, you need to generate your own SSH key with SourceTree. Go to Tools and select Create or Import SSH Keys.
Click on Generate to create SSH Key. Move your mouse cursor within the PuTTY Key Generator continuing to generate the SSH Key.
After SSH Key is generated, type your own Key passphrase for your SSH Key. Key passphrase is like a password to protect your SSH private key. Save your public key and private key for future use.
Add SSH Public Key to GitLab
To add your SSH Key to GitLab, you need to log into you GitLab account. Click on your profile icon on the top right corner, then select Settings. Click on SSH Keys on the side menu.
Copy your public key inside your PuTTY Key Generator, then paste it into GitLab. Click on Add Key to add your SSH Key into the GitLab.
Add SSH Private Key to SourceTree
To add private key to SourceTree, Click on Tools then click Launch SSH Agent…
You will find SSH Agent named as Pageant on the taskbar. Double click on Pageant.
Now click on Add Key. Add your private key which have been saved earlier.
Clone Repository to Access GitLab via SourceTree
Go into your projects in your GitLab. Copy the SSH URL.
In SourceTree, click on Clone. Paste the repository URL into Source Path. Click on Clone, you have successfully connected GitLab with SourceTree. Now you are able to pull and push your code to GitLab with SourceTree.
This is the best step by step guide on this subject I have found. Thank you very much
for sure as of today
This is very helpfull. Thank you!
One thing that I think should be noted for method 1 is that instead of using the actual Gitlab password that you use to login to the gitlab.com website, you should be using the Personal Access Token that’s provided immediately after creating the Access Token in your Gitlab account settings (it’s provided only once, you have to copy it then) *as the password* in Sourcetree after clicking “Refresh Personal Access Token”
Thanks for pointing it out. I have updated the article.
First, you want to switch back to the main branch. From the left-side menu items in Sourcetree, hover your mouse over the right side of the Branches label so that the word Show appears.
This is the best tutorial on the web, thanks a lot
Great tutorial! Can I request how to connecting Github via SourceTree using Personal Access Token? Thanks
Hi, you can refer to my latest post about connecting GitHub with SourceTree.
This is the best tutorial on the web, thanks a lot
Connected to Gitlab using Access Token, I am able to see the repos listed when I search but then when I click “Clone” it will access for password and fail.
Go to “Tools” and click on “Options”. Then, clicks on “Authentication” tab. Set your gitlab account as default. After that, try again.
Thanks for your help!
God bless you!
While going through steps for “Clone Repository to Access GitLab via SourceTree”
I am facing issue where it is saying “This is not a valid source path / URL”
I am Using HTTP link
You need to use SSH link instead of HTTPS link. It looks like [email protected]:yourgiturl.git
Thanks. Simple and easy steps.
I tried connecting Gitlab and Source tree,I tried all the above options but still not working Source Tree version 3.4.8
Tried SSH and Personal Access Token,both are not working.Can anyone help
I need more details to identify the error.
git -c diff.mnemonicprefix=false -c core.quotepath=false –no-optional-locks fetch origin
FATAL ERROR: Network error: Connection timed out
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Completed with errors, see above.
facing this issue even i have access
Check your SSH agent and the SSH Key. Make sure the key is added to the SSH agent and gitlab. And SSH Key must be paired to the gitlab and SSH agent.