OpenLab 2014/05 | Git, GitHub, TravisCI intro

  • Date: 17. 10. 2014
  • Workshop by: Martin Ukrop
  • Cake: almost a lie, evidence here
  • Cake by: Karel Kubíček

Introduction to Git versioning system. Various public repositories, most notably GitHub. Features of GitHub. Connecting GitHub repository to Travis Continuous Integration system.

The repository created during this OpenLab is publicly available from https://github.com/mathius/openlab-git-intro.

Below are some notes used for the workshop.

  • SCM in general, SVN vs. GIT. (ungit demo)
  • git installation
  • git resources: man pages, ProGit, Think like a git
  • GitHub account creation
  • GIT intro (distributed, modified-staged-commited, hash ID)
    • basic usage (clone, add commit, push, pull)
    • Task: create new repository, add sourcecode (factorial), commit, push,
  • branching introduction, branching local, network view
    • git branch, git checkout, git merge
    • git log –oneline –abbrev-commit –all –graph –decorate –color
    • split factorial functionality into separate file in test branch, update Readme in the meantime
    • Task: make new branch, make changes in both master and new, merge, push
  • GitHub support tools
  • very brief intro to GNU Make
    • Makefile (targets, dependencies, rules)
    • Task: create makefile for your project
  • CI intro, TravisCI
    • config creation, GitHub hook activation, build notification
    • Task: get email about passed build
  • unit testing
    • CATCH unit tests, add header, create testing source
    • modify Makefile to include testing build and test target
    • Task: automatic tests on TravisCI