Skip to content
Snippets Groups Projects

Coordinates

  • Date: 6th of September 2017
  • Time: room is booked between 9:00 - 17:00
  • Location: J1-84

Teachers

  • Bowo
  • Jeroen
  • Jonathan
  • Mihai

Audience

Department Organization
Human Genetics/ Bio -IT LUMC/GenomeScan
Human Genetics LUMC
Hematology LUMC
Cell biology EMC
Hematology LUMC
Molecular Cell Biology LUMC
Ouderengeneeskunde LUMC
Ouderengeneeskunde LUMC
KNO LUMC
molecular genetics EMC
Radiology Netherland Cancer Institute
Hematopoiesis Sanquin
Molecular Epidemiology LUMC
Dermatology LUMC
Directorate Education and Study Programmes LUMC
? Leiden University
? Leiden University
Dermatology LUMC

Previous course detailed program

Introduction (9:00 - 9:30) - Jeroen

  • version control definition
  • motivation
  • repository types:
    • local
    • distributed
    • centralised
  • git history
  • GitHub and GitLab as central remotes
  • GitLab demonstration
    • logging in
    • landing page
    • profile settings
    • projects

Practical (9:30 - 9:45)

  • local configuration
    • user.name
    • user.email
  • remote configuration
    • ssh key generation
    • add ssh key to GitLab

Git basics (9:45 - 10:30) - Bowo

  • local repository init
  • clone an existing remote
  • hidden git directory
  • git operations overview:
    • track files areas
    • file states
  • config user.name, user.email, colored output
  • git operations flow:
    • status
    • add
    • commit
    • diff
    • log
    • checkout
    • reset
    • revert
  • HEAD
  • .gitignore

Practical (10:30 - 11:00)

  • create a repository
  • create a file inside the repository
  • stage the file
  • commit the file
  • edit the file and stage it again
  • check log and see the differences
  • create another file and add it to .gitignore

Break (11:00 - 11:15)

Git and remote repositories (11:15 - 12:00) - Martijn

  • distributed git
  • view/add remotes
  • transferring commits between repositories:
    • fetch
    • merge
    • pull
    • push (-u)
    • clone
  • remote protocols:
    • local
    • HTTPS
    • SSH
    • Git protocol
  • GitLab

Lunch (12:00 - 13:00)

Practical (13:00 - 13:30)

  • create a GitLab project
  • add the GitLab project as remote for the local repository created during the previously practical
  • push to the GitLab remote
  • edit some file on GitLab
  • do git fetch and merge
  • change file locally and push to GitLab

Data analysis (13:30 - 14:30) - Szymon

  • how GitLab might be used to deliver results to researchers and document their work
  • Markdown

Break (14:30 - 14:45)

Combing changes by merging (14:45 - 15:30) - Martijn

  • the git commit graph
    • briefly on branches
  • inspecting the commit graph
    • annotated log as an alias
  • merging from remotes
    • fast forward merge
    • three-way merge
  • basic merge conflict
    • resolve merge conflicts by hand
    • git mergetool
    • aborting a merge conflict

Practical (15:30 - 16:00)

  • clone a GitLab project from one of the neighbours
  • check the commit graph
  • do a fast-forward merge
  • do a three-way merge
  • resolve a merge conflict

What to add?

  • more on branches
  • git clean
  • git stash
  • more on GitHub, GitLab, (Bitbucket?)
    • pull requests
    • ...
  • from the current tips and tricks:
    • git blame
    • git tag
    • git diff -w
    • ammend
    • modifying global ignore
    • commands aliases

What to remove?

  • data analysis

Next course program

(10:00 - 10:30) Introduction -

(10:30 - 11:15) Git basics -

(11:15 - 12:00) Practical

(12:00 - 13:00) Lunch

(13:00 - 13:45) Collaboration: remotes -

(13:45 - 14:15) Practical

(14:15 - 14:30) Break

(14:30 - 15:15) Collaboration: merging -

(15:15 - 15:45) Practical

(15:45 - 16:00) Break

(16:00 - 16:30) Tips? -

(15:30 - 16:00) Practical