Git Repositories

Introduction

Git is a distributed version control system, originally developed by Linus Torvalds for Linux kernel development. It has grown over the years to serve as the development platform for many other very large and active open source projects. It has grown for a very simple reason: it is excellent.

Once you have the Git client installed on your development machine, accessing your repository is simple.

NOTE: Unfuddle Git repositories are, by default, accessed via HTTPS (SSL). If you need to access your Git repository via SSH, please see our Git over SSH instructions.

Authentication and Identification

You will need to enter your username and password for every pull or push. However, if you wish to automatically authenticate, you can add the following lines to your ~/.netrc (Linux and Mac OS) or C:\Users\Name\_netrc (Windows) file:

machine subdomain.unfuddle.com
login username
password password

NOTE: subdomain, username, and password must be replaced with values appropriate to your account. Also, be sure to modify the ~/.netrc file permissions so that is visible only to you, since the password is stored in plain text.

If this is your first time using Git, you will want to enter your name and email information to match your Unfuddle settings into your Git config. This information is referenced in Unfuddle to show the Author of commits as well as tracking time on your tickets via Powerful Commit Messages. You can do this with the following commands:

$ git config --global user.name "Your Name"
$ git config --global user.email "email_address@example.com"

NOTE: If you already have this set globally in your config but would like to update your Unfuddle repository with this information you can remove the --gloabl option and run these commands from within the local repository after you clone or import it. This will override any global configs set in your git config for the specific repository only.

Cloning

Once you have created your repository in your account, or if you want to copy an already established repository, you can clone that repository using the following command:

$ git clone https://subdomain.unfuddle.com/git/subdomain_abbreviation/

NOTE: subdomain and abbreviation must be replaced with values appropriate to your account and repository.

Now with your repository cloned to your machine, you are ready to start working with it.

Committing and Pushing

Before you can push new code to the Unfuddle repository you must be sure to add your files to the local index then commit them.

$ git add *
$ git commit -am 'initial commit'

Finally, you are now ready to push any locally made commits to your newly created Unfuddle Git repository.

$ git push unfuddle master

NOTE: If the amount of data you push exceeds Git’s http post buffer size, which is default to 1MB, an error occurs. To prevent this, run this command that will increase it to 512MB:

$ git config --global http.postBuffer 524288000

Congratulations! You should now see all of your commits and files within your Unfuddle repository up online. Other members of your project may now clone the repository.

Additional Resources

For more information on how to get the most out of Git, we recommend some of the following resources: