README.md 5.12 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

Mihai Lefter's avatar
Mihai Lefter committed
17
Details for the next session:
Mihai Lefter's avatar
Mihai Lefter committed
18
- Date: September, 2018 (exact day TBA)
Mihai Lefter's avatar
Mihai Lefter committed
19
- Time: 9:00 - 15:00
Mihai Lefter's avatar
Mihai Lefter committed
20
- Location: TBA
Vermaat's avatar
Vermaat committed
21
- Teachers:
Mihai Lefter's avatar
Mihai Lefter committed
22 23
  - Jonathan Vis
  - Mihai Lefter
Mihai Lefter's avatar
Mihai Lefter committed
24
- Registration via www.medgencentre.nl. Direct access to the [registration form](https://forms.lumc.nl/lumc2/GITcourse).
Mihai Lefter's avatar
Mihai Lefter committed
25

Vermaat's avatar
Vermaat committed
26

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

29 30
| Time  | Subject                                                                                | Teacher           | Contents                  |
| ----- | -----------------                                                                      | ----------------- | ------------------------- |
31
| 09:00 | [Introduction](https://git.lumc.nl/courses/gitcourse/wikis/files-most-recent/introduction.pdf)             | Mihai Lefter      | Welcome, version control introduction |
Mihai Lefter's avatar
Mihai Lefter committed
32
| 09:30 | [Git basics](https://git.lumc.nl/courses/gitcourse/wikis/files-most-recent/basics.pdf) | Mihai Lefter       | Basic Git command line flow |
33 34 35
| 10:15 | [Practical](https://git.lumc.nl/courses/gitcourse/wikis/files-most-recent/basics_handouts.pdf)             |                   |                           |
| 11:00 | [The git commit graph](https://git.lumc.nl/courses/gitcourse/wikis/files-most-recent/commit_graph.pdf)  | Mihai Lefter   | Commit graph, branching, merging, and resolving merge conflicts. |
| 11:45 | [Practical](https://git.lumc.nl/courses/gitcourse/wikis/files-most-recent/commit_graph_handouts.pdf)             |                   |                           |
Mihai Lefter's avatar
Mihai Lefter committed
36
| 12:30 | Lunch                                                                                  |                   |                           |
37 38
| 13:30 | [Collaboration: remote repositories](https://git.lumc.nl/courses/gitcourse/wikis/files-most-recent/remotes.pdf)   | Jonathan Vis   | Sharing and collaborating via remotes |
| 14:15 | [Practical](https://git.lumc.nl/courses/gitcourse/wikis/files-most-recent/remotes_handouts.pdf)            |                   |                           |
Mihai Lefter's avatar
Mihai Lefter committed
39
| 15:00 | Questions, closing                                                                     |                   |                           |
Vermaat's avatar
Vermaat committed
40 41 42 43 44

## Prerequisites

Affinity with the UNIX shell is required before taking the course. For
example, our
Mihai Lefter's avatar
Mihai Lefter committed
45
[Practical Linux Course](https://git.lumc.nl/courses/practical-linux-course)
Mihai Lefter's avatar
Mihai Lefter committed
46
is more than enough. In addition, you can find some nice 
Mihai Lefter's avatar
Mihai Lefter committed
47
[tutorials here](http://www.ee.surrey.ac.uk/Teaching/Unix/).
Vermaat's avatar
Vermaat committed
48 49 50

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
51 52
[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
53 54 55 56 57 58 59 60

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
61
- [Code School - Try Git](https://try.github.io/) (you could even try this
Vermaat's avatar
Vermaat committed
62
  before the course)
Vermaat's avatar
Vermaat committed
63 64 65
- [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)
66
- [Git tutorials at Atlassian](https://www.atlassian.com/git/tutorials)
Vermaat's avatar
Vermaat committed
67 68
- [Learn Git Branching](http://pcottle.github.io/learnGitBranching/)
- [Git cheat sheet](https://git.wiki.kernel.org/index.php/GitCheatSheet)
Vermaat's avatar
Vermaat committed
69 70 71 72
  (useful for printing)


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

Mihai Lefter's avatar
Mihai Lefter committed
74
- [March 29th, 2018](https://git.lumc.nl/courses/gitcourse/wikis/session-march-29th-2018)
Mihai Lefter's avatar
Mihai Lefter committed
75
- [November 22nd, 2017](https://git.lumc.nl/courses/gitcourse/wikis/session-november-22nd-2017)
76
- [September 6th, 2017: Code and data management with Git](https://git.lumc.nl/courses/gitcourse/wikis/session-september-6th-2017)
Martijn Vermaat's avatar
Martijn Vermaat committed
77 78
- October 14th, 2013: Git introduction course
- June 23rd, 2014: Git introduction course
Vermaat's avatar
Vermaat committed
79
- December 1st, 2015: Code and data management with Git
Vermaat's avatar
Vermaat committed
80
- April 25th, 2016: Code and data management with Git
Vermaat's avatar
Vermaat committed
81

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


Martijn Vermaat's avatar
Martijn Vermaat committed
85
## Using the course materials
Vermaat's avatar
Vermaat committed
86

Martijn Vermaat's avatar
Martijn Vermaat committed
87 88 89 90 91 92 93 94 95 96
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
97 98 99 100 101 102
    git submodule init
    git submodule update

A new presentation can be added like this:

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