README.md 4.58 KB
Newer Older
Martijn Vermaat's avatar
Martijn Vermaat committed
1
# Code and data management with Git
Laros's avatar
Laros committed
2

Martijn Vermaat's avatar
Martijn Vermaat committed
3
This is the website for the course *Code and data management with Git*. This
Vermaat's avatar
Vermaat committed
4 5 6
course consists of an introduction to working with the
[Git](http://git-scm.com/) version control system for data analysis and is
aimed primarily at researchers in the LUMC.
Vermaat's avatar
Vermaat committed
7

Martijn Vermaat's avatar
Martijn Vermaat committed
8 9 10 11 12
The Git system is widely used by software developers, but can also be used for
project management. In the LUMC we use [GitLab](https://git.lumc.nl) as a
collaborative environment on top of Git. By keeping track of all versions,
history, etc, GitLab makes your projects more reproducible and collaboration
with colleagues easy.
Vermaat's avatar
Vermaat committed
13 14


Vermaat's avatar
Vermaat committed
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
## Coordinates

- Date: December 1st, 2015
- Time: 9:00 - 17:00
- Location: T-0-010
- Teachers:
  - Martijn Vermaat (m.vermaat.hg@lumc.nl)
  - Jeroen Laros (j.f.j.laros@lumc.nl)
  - Wibowo Arindrarto (W.Arindrarto@lumc.nl)
  - Szymon Kiełbasa (S.M.Kielbasa@lumc.nl)


## Program

This year the contents will be slightly less advanced on the technical side
(no branching, no git-annex). Instead, there is more focus on using the LUMC
GitLab server and using Git for data analysis projects.

| Time  | Subject           | Teacher           | Contents                  |
| ----- | ----------------- | ----------------- | ------------------------- |
| 09:00 | **Introduction**  | Jeroen Laros      | Welcome, GitLab overview, SSH keys |
| 09:30 | *Practical*       |                   |                           |
| 09:45 | **Git basics**    | Wibowo Arindrarto | Basic Git command line fu |
| 10:30 | *Practical*       |                   |                           |
| 11:00 | Coffee            |                   |                           |
| 11:15 | **Git remotes**   | Martijn Vermaat   | Sharing and collaborating via GitLab |
| 11:45 | *Practical*       |                   |                           |
| 12:00 | Lunch             |                   |                           |
| 13:00 | *Practical*       |                   |                           |
| 13:30 | **Git conflicts** | Martijn Vermaat   | Resolving merge conflicts, protected branches |
| 14:15 | *Practical*       |                   |                           |
| 14:45 | Break             |                   |                           |
| 15:00 | **Data analysis** | Szymon Kiełbasa   | More GitLab, Markdown, data analysis use case |
| 15:30 | *Practical*       |                   |                           |
| 16:00 | Questions, drinks |                   |                           |


## Prerequisites

Affinity with the UNIX shell is required before taking the course. For
example, our
[scripting course](https://humgenprojects.lumc.nl/trac/humgenprojects/wiki/scripting)
is more than enough, or you could go though
[tutorials 1-3 here](http://www.ee.surrey.ac.uk/Teaching/Unix/).

We encourage you to bring your own laptop, but make sure it has a terminal and
[Git](http://git-scm.com/) installed. We work with
[Linux](http://en.wikipedia.org/wiki/Linux), but Git also runs on Mac OSX. On
Windows, it is probably easiest to use something like
[MobaXterm](http://mobaxterm.mobatek.net/) or
[VirtualBox](https://www.virtualbox.org/) with
[Ubuntu](http://www.ubuntu.com/).

We can also provide you with a laptop that has all the required software
installed. The lessons are interactive, meaning that you really need a
laptop.


## Further reading

Vermaat's avatar
Vermaat committed
75
- [Code School - Try Git](https://try.github.io/) (you could even try this
Vermaat's avatar
Vermaat committed
76
  before the course)
Vermaat's avatar
Vermaat committed
77 78 79 80 81 82
- [The entire Pro Git book](http://git-scm.com/book) on the official [Git
  website](http://git-scm.com/)
- [Ry's Git Tutorial](http://rypress.com/tutorials/git/index.html)
- [Git tutorials at Atlassian](https://www.atlassian.com/git/tutorial)
- [Learn Git Branching](http://pcottle.github.io/learnGitBranching/)
- [Git cheat sheet](https://git.wiki.kernel.org/index.php/GitCheatSheet)
Vermaat's avatar
Vermaat committed
83 84 85 86
  (useful for printing)


## Past course dates
Vermaat's avatar
Vermaat committed
87

Martijn Vermaat's avatar
Martijn Vermaat committed
88 89
- October 14th, 2013: Git introduction course
- June 23rd, 2014: Git introduction course
Vermaat's avatar
Vermaat committed
90
- December 1st, 2015: Code and data management with Git
Vermaat's avatar
Vermaat committed
91

Martijn Vermaat's avatar
Martijn Vermaat committed
92
For corresponding snapshots of this repository, see [tags](https://git.lumc.nl/humgen/gitcourse/tags).
Vermaat's avatar
Vermaat committed
93 94


Martijn Vermaat's avatar
Martijn Vermaat committed
95
## Using the course materials
Vermaat's avatar
Vermaat committed
96

Martijn Vermaat's avatar
Martijn Vermaat committed
97 98 99 100 101 102 103 104 105 106
There is one [Git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules)
on which this repository depends:

- **[presentation](https://git.lumc.nl/j.f.j.laros/presentation)** template for
  presentations in LaTeX.

First clone this repository, then fetch the data from the submodule:

    git clone https://git.lumc.nl/humgen/gitcourse.git
    cd gitcourse
Vermaat's avatar
Vermaat committed
107 108 109 110 111 112
    git submodule init
    git submodule update

A new presentation can be added like this:

    cd presentation
Vermaat's avatar
Vermaat committed
113
    bash mkpres.sh ../mypresentation