# Code and data management with Git This is the website for the course *Code and data management with Git*. This 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. 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 ([introduction](http://doc.gitlab.com/ce/gitlab-basics/README.html)). ## Coordinates Details for the next session: - Date: December 7th, 2018 - Time: 9:00 - 15:00 - Location: TBA - Teachers: - TBA - Registration via www.medgencentre.nl. Direct access to the [registration form](https://forms.lumc.nl/lumc2/GITcourse). ## Program | Time | Subject | Teacher | Contents | | ----- | ----------------- | ----------------- | ------------------------- | | 09:00 | [Introduction](https://git.lumc.nl/courses/gitcourse/wikis/files-most-recent/introduction.pdf) | TBA | Welcome, version control introduction | | 09:30 | [Git basics](https://git.lumc.nl/courses/gitcourse/wikis/files-most-recent/basics.pdf) | TBA | Basic Git command line flow | | 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) | TBA | 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) | | | | 12:30 | Lunch | | | | 13:30 | [Collaboration: remote repositories](https://git.lumc.nl/courses/gitcourse/wikis/files-most-recent/remotes.pdf) | TBA | Sharing and collaborating via remotes | | 14:15 | [Practical](https://git.lumc.nl/courses/gitcourse/wikis/files-most-recent/remotes_handouts.pdf) | | | | 15:00 | Questions, closing | | | ## Prerequisites Affinity with the UNIX shell is required before taking the course. For example, our [Practical Linux Course](https://git.lumc.nl/courses/practical-linux-course) is more than enough. In addition, you can find some nice [tutorials 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. Windows is not ideal, but here are [some suggestions](WINDOWS.md). 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 - [Code School - Try Git](https://try.github.io/) (you could even try this before the course) - [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/tutorials) - [Learn Git Branching](http://pcottle.github.io/learnGitBranching/) - [Git cheat sheet](https://git.wiki.kernel.org/index.php/GitCheatSheet) (useful for printing) ## Past course dates - [September 12th, 2018](https://git.lumc.nl/courses/gitcourse/wikis/session-september-12th-2018) - [March 29th, 2018](https://git.lumc.nl/courses/gitcourse/wikis/session-march-29th-2018) - [November 22nd, 2017](https://git.lumc.nl/courses/gitcourse/wikis/session-november-22nd-2017) - [September 6th, 2017](https://git.lumc.nl/courses/gitcourse/wikis/session-september-6th-2017) - October 14th, 2013: Git introduction course - June 23rd, 2014: Git introduction course - December 1st, 2015: Code and data management with Git - April 25th, 2016: Code and data management with Git For corresponding snapshots of this repository, see [tags](https://git.lumc.nl/humgen/gitcourse/tags). ## Using the course materials 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/courses/gitcourse.git cd gitcourse git submodule init git submodule update A new presentation can be added like this: cd presentation bash mkpres.sh ../mypresentation