--- _db_id: 143 content_type: topic ready: true title: Git Basics todo: link to some videos? --- ## What's git all about? Git is an industry standard tool used for collaboration within teams. We teach it quite early on in our course because without it you will be fairly useless as a professional. Yes, it's that important. The git book (below) has a better introduction. ## The Git Book You don't need to know absolutely everything about Git in order to start using it. We keep our git repos on Github so don't worry about the server setup stuff. The first three chapters will serve you well initially: https://git-scm.com/book/en/v2 ## What we expect from you As you progress through this course you will have to write a lot of code. All your code will be submitted to us for review in the form of a git repo. You will be expected to be comfortable using git from the command line. ## General best practices - make a separate repo for every project (we don't want to have to sift through unrelated code when marking your work) - make sure that you _push_ your latest work before leaving the office every day - if you are working on a team, make sure you _pull_ the master branch often - give your git branches meaningful and specific names - give your commits meaningful messages - always make use of .gitignore, you can find out more about it [here](https://www.youtube.com/watch?v=POZFmbYHvWk) ## Github We use Github for keeping our code safe. [Here](https://guides.github.com/introduction/git-handbook/) is a little intro and [here](https://drive.google.com/open?id=1g5oD59DFQbrhPHvW7a8mW8NKI1UNV-dZ) is the official cheat sheet. Also checkout {{% contentlink path="topics/bootcamp/git-for-bootcamp" %}} ## For our data recruits https://www.datacamp.com/courses/introduction-to-git-for-data-science ## Fun fact about our syllabus This site that you are looking at is a repo stored on git. This is cool because it means that you can [fork](https://guides.github.com/activities/forking/) it and make changes to our content. For example: - if you find a video that was really useful in understanding a topic, then you can add a link to that video to our course material - if you see a typo you can fix it - If you think one of our projects can be explained better then you can add more explanation [Here](https://github.com/Umuzi-org/tech-department) is the repo, and [this guide](/how-to-contribute) tells you a bit about what we ae looking for. Contributing to our syllabus is not compulsory, but it would be appreciated :)