Git

Thanks to Joseph Brown for putting this together

Get Git

You only have to do this once and you only need to do this if, when you go to the command line and type git you get

bash: git: command not found

If you do not have git (needed for both BitBucket and GutHub) installed, you can get it from here.

If this is your first time using git, you will need to configure it. In a Terminal, type:

git config --global user.name "first last"
git config --global user.email your_email@youremail.com

Set Up A Public SSH Key

You only have to do this once as well and if you have done it for another task you don’t need to do it again for git. This is to make it so you don’t have to type passwords. Pushing code is to Bitbucket/GitHub is very easy and with this setup, you don’t need to type passwords, it will just accept things from your computer. To do this, we will create and upload a public ssh key.

You can see if you already have one by looking at what you have in the directory ~/.ssh/. If you have the files id_rsa id_rsa.pub then you don’t need to do this step. You can just go to setup bitbucket or github below.

If you don’t have those files and you need to do this step, in the terminal type

ssh-keygen -t rsa -C "your_email@youremail.com"

Use the email associated with your Bitbucket/Github account. It will ask you for a passphrase. Just hit Enter (for empty passphrase). Your public key will be saved in ~/.ssh/id_rsa.pub.

Setup Bitbucket

Go to bitbucket.org and sign up if need be. Make sure to use an academic email address, as this entails free unlimited space.

Select “Manage Account” from your user menu. Then, select “SSH keys”, and click on “Add key”. It is important that the key is formatted exactly (e.g. does not contain spaces), so we need a dependable way to copy/paste. We’ll use the clipboard.

For mac:

pbcopy 

For linux:

sudo apt-get install xclip
xclip -sel clip 

In the Key window, paste in the key and click “Add key”. You can now test this in Terminal

ssh -T git@bitbucket.org

You only need to do the steps above once. Any new repositories will use this key.

Setup Github

Setting up a GitHub account is similar to Bitbucket.

Creating a repository

You can always setup repositories without linking them to bitbucket or github. Those sites just manage ways for collaboration and code communication. If you setup a new repository on those sites, they will often give you instructions for how to start them on your machine or if you already have one and want to link it online, it will also give you instructions for that.

The basic instructions are as such. In bitbucket, click on “Repositories” at the top, and select “Create repository”. Configure name, description, private/public, language, etc. Use Git as Repository type.

Done on the web. Switch over to a Terminal. cd into the folder containing your code. Type:

git init
git remote add origin ssh://git@bitbucket.org/YOUR_USER_NAME/YOUR_REPO_NAME.git

Committing changes

1. Add files to be pushed:

git add .


“.” adds everything that differs from the repository. To restrict it to file “foo.txt”:

git add foo.txt


2. Commit files:

git commit -m "some message about the commit"


3. Push already:

git push origin master


There are, of course, a lot of other commands, but these are the ones you will use often. There are tons of git cheatsheets online.

Issues

Sometimes when cloning a repository, git is configured to use https rather than ssh URLs. This means that it will not use your public ssh key, and so you will need to type in your password every time you push. To remedy this, go to the .git directory in your code folder “foo”:

cd foo/.git
vi config


You will see something like:

[remote "origin"]
url = https://YOUR_USER_NAME@bitbucket.org/YOUR_USER_NAME/YOUR_REPO_NAME.git


Edit this to:

[remote "origin"]
# url = https://YOUR_USER_NAME@bitbucket.org/YOUR_USER_NAME/YOUR_REPO_NAME.git
url = git@bitbucket.org:YOUR_USER_NAME/YOUR_REPO_NAME.git


Pushing will now not require a password.

Leave a Reply