I wanted a set of instructions for my colleagues and friends when they want to setup Git and TortoiseGit on Windows (connected to Bitbucket). There are some steps that I have to Google myself too every time, because I don’t install Git & TortoiseGit everyday.
Okay, so this post is going to be a bare-bones, step by step guide for me or anyone (No backgrounds, theories and other noise)
1. Download the latest Git for Windows → http://git-scm.com/download/win
2. Start the installation and continue clicking “Next” until you come to the “Select Components” view (see below).
We only mark “Git Bash Here”, as shown in the image (This will add an entry in the right-click context menu of folders) →
3. Continue clicking “Next” without changing anything and finally click “Finish” to complete the setup. We have completed installing Git.
1. Click Start Menu and type “Git Bash” and press Enter to open a Git command-line window
2. Provide your name and email address to Git, so that it will label your commits properly.
For example, if you want your name to look like “John Doe” in your commits and your email address (registered with Bitbucket) is email@example.com, you would enter the following two commands (press Enter after each line) →
git config –global user.name “John Doe”
git config –global user.email “firstname.lastname@example.org”
This is how it would look in Git Bash →
To make sure we don’t enter our username and password every time we push to or pull from the Bitbucket repository, we should use SSH (secure shell) to communicate with Bitbucket. Lets go ahead and create our SSH identity to communicate with Bitbucket.
1. Click Start Menu and type “Git Bash” and press Enter to open the Git command line (if it is not already open)
2. Type the following command and press Enter →
ssh-keygen –t rsa –C “email@example.com”
(Use your email address registered with Bitbucket)
You will be prompted to provide file location and to enter a passphrase twice. Keep pressing the Enter key to accept the default file locations and to skip providing a passphrase.
Now the key files are generated. Easiest way to copy the contents of the public key to the clipboard is to use the “clip” command as follows →
clip < ~/.ssh/id_rsa.pub
Once you press Enter, the contents will be in clipboard, ready to be pasted.
This is how it will look in Git Bash →
1. Log into Bitbucket and click on your avatar (top right-hand corner). Click “Manage Account”
2. Click on the “SSH keys” link on the left side and click the “Add Key” button to add a new key.
3. In the “Add SSH key” popup that comes up, paste the copied contents of the public key in the “Key” text box.
4. Provide a label for this key in the “Label” text box, to identify it (optional). For example it could be “Personal Laptop”.
5. Click on the “Add key” button to save and close the popup. Key with the “Personal Laptop” label (or any other name provided) should be listed like in the following image →
At this point we have everything ready to work with Git and Bitbucket… ONLY if you are someone who loves the command-line!
If you were one of those rare breeds, you wouldn’t even be here reading this guide. So let’s continue and see how we can install and setup TortoiseGit as our GUI interface for Git (there are many other excellent Git clients too, that you can try, e.g.: SourceTree)
1. Download the latest TortoiseGit here → http://code.google.com/p/tortoisegit/ (Make sure you select the right setup for your PC – 32bit or 64bit).
2. Start the installation and keep clicking “Next” until you come to the following view (Choose SSH client). Choose “OpenSSH, Git default SSH Client” here.
Note: If you don’t see the “Choose SSH Client” option during installation, don’t worry. This can happen if you are reinstalling TortoiseGit (The settings are left behind in a previous installation in the Registry).
If this happened to you, Click “Finish” and try the “Extra Step” provided blow. Then you can continue from “Let’s test our installation” topic.
3. Click “Finish” to complete the setup
We need a valid Git repository in Bitbucket to test our installations and configurations.
Go to an existing repository or create a new repository (this can even be a repository to only test Git with Bitbucket, that you can delete immediately).
1. Click on the “Clone” button on top (next to the “Fork” button).
2. Select “SSH” from the drop-down.
3. You will see a text box to the right with all its text selected. “git clone” is a command and we don’t need that now. So, copy everything else.
This is how it would look in Bitbucket →
If you paste the copied text to a text editor like Notepad, it should look something like the following (Note that there’s no “git clone” command in it. If you accidentally copied that too, copy again WITHOUT it).
Some parts will be different for you because you will have a different username and repository name. This is our clone URL.
4. Let’s “clone” the repository on the desktop (you can delete and try a different location later). Right-click on the Desktop and select “Git Clone…” from the context menu.
5. A window will popup. Paste the copied clone URL in the “URL” box and click Ok →
6. If this is the 1st ever time you are communicating with Bitbucket using SSH, you will see the following message (Git doesn’t know Bitbucket as a host yet) →
Just click “Yes” to remember bitbucket.org in future sessions.
If everything went on fine, you should see a blue success message at the bottom in TortoiseGit once the cloning is complete →
Only when you could commit and push a file to Bitbucket without a problem, that we can confidently say our setup works.
Yeah, that’s “home-work” for you and I’m not going to list any steps here
Since the purpose of this article was to setup the necessary tools, “how to” work with these tools is beyond scope (Can be discussed in another article maybe).
If you didn’t see the “Choose SSH Client” option during installation (which can happen if you are reinstalling TortoiseGit – the settings are left behind in a previous installation in the Registry). You can set this later in TortoiseGit settings after installing TortoiseGit as described below →
Here’s a screenshot of the Network options in TortoiseGit settings →
I want to keep this post as simple as possible for anybody to follow. If you found any areas where it is not clear, please let me know below in the comments, so that I can make sure its simple for everyone.