Our Notes

Posts about research, open source and technologies.

Git Fundamentals

Git is a Distributed Version Control System (DVCS), a tool used to develop and maintain software. It allows you to develop software in incremental steps and gives you a view of the project's history. As a developer, this is useful as once you learn the fundamentals, you will have an easier time keeping track of your work.


  • Git is installed locally
  • Github / Gitlab account

Without going into much detail, the Git model has two levels, Staging and History. Staging is where current work resides. History is a ledger of all the changes that have been made in the project. The way Git works is that at any point in time, there will be a remote copy of the project (hosted on Github / Gitlab) and several copies of the project (typically in developers' machines). As developers work on features, these changes are first made locally and then synchronized to the remote repository. This allows for effective collaboration and provides a safety net in case something happens to a machine that contained work.

Basics & Example

  • To get started, create a repository on Gitlab and then clone it to your local machine.
  • Here are the commands we will be going over for basic workflow:
    • git status
    • git add
    • git commit
    • git push

Let’s use a simple python function as an example, start by creating a file calculator.py and add:

  • Officevibe at Sophilabs: How Checking the Pulse of Our Company Culture Helps Us Maximize Motivation and Engagement

    Officevibe is doing great work helping companies receive anonymous feedback from team members on their work environment and company culture. This post delves into how we use Officevibe, what we've learned from our team members' feedback, and the changes we've made to ensure that sophilabs is a fantastic place to work.

  • Sophilabs at Collision 2019

    In May, we had the opportunity to attend Collision, "the fastest growing tech conference in North America," where we showcased an enterprise voice assistant developed by our team.

  • An Agile Development Glossary

    If you're new to Agile development, all the jargon we use at sophilabs can make us sound like we're speaking an entirely different language! We've put together a glossary of Agile terms to help keep everyone on the same page.

  • Why Python is the Ideal Language for Machine Learning

    In this post, we take a look at the top reasons sophilabs prefers Python when working on machine learning projects, from the abundance of libraries to the ways in which Python makes collaboration easier.

Sign up to receive a monthly summary.