README.md 5.53 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
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
Vermaat's avatar
Vermaat committed
12
with colleagues easy ([introduction](http://doc.gitlab.com/ce/gitlab-basics/README.html)).
Vermaat's avatar
Vermaat committed
13 14


Martijn Vermaat's avatar
Martijn Vermaat committed
15
## Coordinates
Vermaat's avatar
Vermaat committed
16 17

- Date: April 25th, 2016
Vermaat's avatar
Vermaat committed
18
- Time: 9:00 - 17:00
Vermaat's avatar
Vermaat committed
19
- Location: 02-T-00-008
Vermaat's avatar
Vermaat committed
20 21 22 23
- Teachers:
  - Martijn Vermaat (m.vermaat.hg@lumc.nl)
  - Jeroen Laros (j.f.j.laros@lumc.nl)
  - Wibowo Arindrarto (W.Arindrarto@lumc.nl)
Kielbasa's avatar
Kielbasa committed
24
  - Szymon M. Kiełbasa (S.M.Kielbasa@lumc.nl)
Martijn Vermaat's avatar
Martijn Vermaat committed
25
- Registration: Martijn Vermaat (m.vermaat.hg@lumc.nl)
Vermaat's avatar
Vermaat committed
26 27


Martijn Vermaat's avatar
Martijn Vermaat committed
28
## Program
Vermaat's avatar
Vermaat committed
29

Martijn Vermaat's avatar
Martijn Vermaat committed
30 31 32
The contents will be slightly less advanced on the technical side (no branching,
no git-annex) compared to some previous years. Instead, there is more focus on
using the LUMC GitLab server and using Git for data analysis projects.
Vermaat's avatar
Vermaat committed
33

34 35
| Time  | Subject                                                                                | Teacher           | Contents                  |
| ----- | -----------------                                                                      | ----------------- | ------------------------- |
36 37 38 39
| 09:00 | [Introduction](/uploads/a39cd4f06b7f52db4a69ccb556b7d0d1/introduction.pdf)             | Jeroen Laros      | Welcome, GitLab overview, SSH keys |
| 09:30 | [Practical](/uploads/82a66303595f40d3b8a7854a33e1f51a/introduction_handouts.pdf)       |                   |                           |
| 09:45 | [Git basics](/uploads/893488160447dbc3cae5b4259c401581/basics.pdf)                     | Wibowo Arindrarto | Basic Git command line fu |
| 10:30 | [Practical](/uploads/6e1780b1070b7ae0f5144c116fd40f23/basics_handouts.pdf)             |                   |                           |
40
| 11:00 | Coffee                                                                                 |                   |                           |
41
| 11:15 | [Git and remote repositories](/uploads/9a90d60aa0c767b2c3634a9268583f87/remotes.pdf)   | Martijn Vermaat   | Sharing and collaborating via GitLab |
42
| 12:00 | Lunch                                                                                  |                   |                           |
43
| 13:00 | [Practical](/uploads/7cf18fa0d9c2d7422b04ccb8c9d7ac3e/remotes_handouts.pdf)            |                   |                           |
Martijn Vermaat's avatar
Martijn Vermaat committed
44 45
| 13:30 | [Data analysis](usecases/)                                                             | Szymon Kiełbasa   | More GitLab, Markdown, data analysis use case |
| 14:30 | Break                                                                                  |                   |                           |
46 47
| 14:45 | [Combining changes by merging](/uploads/62ff4f6f2c6ec1a8b2565aea8dca32a4/merging.pdf)  | Martijn Vermaat   | Commit graph, merging, resolving merge conflicts |
| 15:30 | [Practical](/uploads/94849cdea022c8050bda1175182eac71/merging_handouts.pdf)            |                   |                           |
Martijn Vermaat's avatar
Martijn Vermaat committed
48
| 16:00 | Questions, closing                                                                     |                   |                           |
Vermaat's avatar
Vermaat committed
49 50 51 52 53 54 55 56 57 58 59 60


## 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
Martijn Vermaat's avatar
Martijn Vermaat committed
61 62
[Linux](http://en.wikipedia.org/wiki/Linux), but Git also runs on Mac OSX.
Windows is not ideal, but here are [some suggestions](WINDOWS.md).
Vermaat's avatar
Vermaat committed
63 64 65 66 67 68 69 70

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
71
- [Code School - Try Git](https://try.github.io/) (you could even try this
Vermaat's avatar
Vermaat committed
72
  before the course)
Vermaat's avatar
Vermaat committed
73 74 75 76 77 78
- [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
79 80 81 82
  (useful for printing)


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

Martijn Vermaat's avatar
Martijn Vermaat committed
84 85
- October 14th, 2013: Git introduction course
- June 23rd, 2014: Git introduction course
Vermaat's avatar
Vermaat committed
86
- December 1st, 2015: Code and data management with Git
Vermaat's avatar
Vermaat committed
87
- April 25th, 2016: Code and data management with Git
Vermaat's avatar
Vermaat committed
88

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


Martijn Vermaat's avatar
Martijn Vermaat committed
92
## Using the course materials
Vermaat's avatar
Vermaat committed
93

Martijn Vermaat's avatar
Martijn Vermaat committed
94 95 96 97 98 99 100 101 102 103
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
104 105 106 107 108 109
    git submodule init
    git submodule update

A new presentation can be added like this:

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