diff --git a/2019/2019-10-10_advancedGitTraining-SIU/slides/amend.md b/2019/2019-10-10_advancedGitTraining-SIU/slides/amend.md
new file mode 100644
index 0000000000000000000000000000000000000000..36b501c1587926ff640e4d622f33ddcf12570b03
--- /dev/null
+++ b/2019/2019-10-10_advancedGitTraining-SIU/slides/amend.md
@@ -0,0 +1,64 @@
+# Amend a commit
+
+* Enables to change a commit on `HEAD` (the last commit)
+
+* Start by creating and committing a file in the `attendees` directory:
+```bash
+$ cd attendees
+$ echo "# Firstname Lastname" > myName.md
+$ git add myName.md
+$ git commit -m "Add firstname lastname to attendees"
+```
+
+* Check the commit in the `log`:
+```bash
+$ git log
+```
+
+
+
+# Example 1: change the commit message
+
+* Verify that your staging area is clear:
+```bash
+$ git status
+```
+
+* Use `git commit --amend` to change the commit
+
+* Alternatively, you can use the `-m` flag to edit only the commit message:
+    ```bash
+    $ git commit --amend -m "Add title"
+    ```
+
+* Check the commit message in the `log`:
+```bash
+$ git log
+```
+
+
+
+# Example 2: change the commit content
+
+* In your editor, change the text in the `myName.md` file. For instance:
+```bash
+My biography ...
+```
+
+* You can see that the file changed:
+```bash
+$ git status
+```
+
+* With the changes staged use the following command to commit the changes into the previous commit:
+```bash
+$ git add myName.md
+$ git commit --amend --no-edit
+```
+
+* Check the commit content:
+```bash
+$ git show HEAD
+```
+
+* This will create and commit a new commit with the staged changes added and the same commit message.
diff --git a/2019/2019-10-10_advancedGitTraining-SIU/slides/chPick.md b/2019/2019-10-10_advancedGitTraining-SIU/slides/chPick.md
new file mode 100644
index 0000000000000000000000000000000000000000..ef2af9e83483829bb9db244516998a5d65c59557
--- /dev/null
+++ b/2019/2019-10-10_advancedGitTraining-SIU/slides/chPick.md
@@ -0,0 +1,105 @@
+# Cherry-picking
+
+* Cherry-picking allows to pick one (or more) specific commits from a list of commits.
+
+* Only the chosen commit(s) are picked, not everything up to that commit.
+
+<div style="top: 8em; left: 25%; position: absolute;">
+    <img src="slides/img/cherryPick.png" height=500px>
+</div>
+
+
+
+# Example (1)
+
+* Create and commit two files in the `develop ` branch
+```bash
+$ git checkout develop
+$ echo "# Venue details" > location.md
+$ # add and commit the file location.md
+$ echo "# Speakers" > speakers.md
+$ # add and commit the file speakers.md
+```
+
+
+
+# Example (2)
+
+* Check the `log` and note down the `SHA1` of the commits you want to cherry-pick. Then:
+```bash
+$ git checkout myBranch
+$ git cherry-pick <SHA1>
+```
+* Check the log again and see if the changes were applied correctly. Note the new SHA1!
+```bash
+$ git show <newSHA1>
+```
+* Repeat for the second commit
+
+* Push the changes to `myBranch`
+```bash
+$ git push origin myBranch
+```
+
+* Note that the `-f` flag is not needed to force push (no history has been rewritten)
+
+
+
+# Partial chery-picking
+
+* Partial cherry-picking allows you to unpack the changes from a commit.
+
+* Imagine you committed many files, and you want to remove certain files.
+
+* In practice:
+
+    - You commited all files, and you realize that there is your data inside!
+
+    - You have committed accidentally sensitive data, such as your password
+
+    - You committed hidden files, for instance `.DS_Store` files
+
+    - ...
+
+
+
+
+# Example (1)
+
+* Hard reset the `myBranch` branch:
+```bash
+$ git checkout myBranch
+$ git reset --hard HEAD~2 # do not preserve files
+```
+
+* Reset the `develop` branch:
+```bash
+$ git checkout develop
+$ git reset HEAD~2 # preserve files
+```
+* Add the `location.md` and the `speakers.md` files as 1 commit:
+```bash
+$ git add location.md speakers.md
+$ git commit -m "add location and speakers files"
+```
+
+
+
+# Example (2)
+
+Cherry-pick the commit from `develop` over to `myBranch`:
+
+```bash
+$ git checkout myBranch
+$ git cherry-pick -n <SHA1>
+$ git status
+```
+Now, remove the file `location.md`:
+```bash
+$ git restore --staged location.md # old version of git: $ git reset HEAD location.md
+$ rm location.md
+```
+Commit the changes:
+```bash
+$ git commit -m "add speakers file"
+```
diff --git a/2019/2019-10-10_advancedGitTraining-SIU/slides/conflict.md b/2019/2019-10-10_advancedGitTraining-SIU/slides/conflict.md
new file mode 100644
index 0000000000000000000000000000000000000000..63b51ab616ac1fdacfe78c01752cd4ff1fdb20e4
--- /dev/null
+++ b/2019/2019-10-10_advancedGitTraining-SIU/slides/conflict.md
@@ -0,0 +1,124 @@
+# Conflict resolution
+
+* A conflict occurs when two changes change the same line in a file
+
+* Some conflict may be resolved automatically, but major conflicts
+always need to be resolved manually
+
+* Tools exist to streamline conflict resolutions, we use `kdiff3`
+
+* Conflicts can happen during `merge`, `cherry-pick`, and `rebase`
+
+
+
+# Example 1: Conflict resolution when locally merging (1)
+
+* Checkout the branch `myNewBranch` and change the file `template.md`:
+
+```bash
+$ git checkout myNewBranch
+```
+
+* Use your favorite editor and type:
+
+```bash
+# Advanced git training course
+
+## Firstname Lastname
+```
+
+* Add and commit that change.
+
+* Checkout the branch `myBranch` and change the file `template.md`:
+
+```bash
+# Advanced git training -- Course
+
+## Firstname Lastname
+```
+* Then, save, add, and commit that change.
+
+
+
+# Example 1: Conflict resolution when locally merging (2)
+
+* Merge the `myNewBranch` into the `myBranch` branch:
+
+```bash
+$ git merge myNewBranch
+```
+
+* A conflict appears:
+```bash
+$ git merge myNewBranch
+Auto-merging attendees/template.md
+CONFLICT (content): Merge conflict in attendees/template.md
+Automatic merge failed; fix conflicts and then commit the result.
+```
+* Start the merge tool:
+```
+$ git mergetool
+```
+
+
+
+# Example 1: Conflict resolution when locally merging (3)
+
+* This opens kdiff3 if it was properly set up. There are 3 versions:
+    - **A**: version on `myBranch` before the recent change.
+    - **B**: version on `myNewBranch`
+    - **C**: version on `myBranch` after the recent change
+
+* Resolve the conflict and save. Then:
+```bash
+$ git merge --continue
+```
+
+* If you check the status, you will find a `.orig` file. This is a backup and contains the conflict.
+```bash
+$ git status
+$ cat template.md.orig
+```
+* If you do not need anymore the backup file, you can remove it.
+* You can either `rm` the `.orig` file, or you can use `git clean -fdx`. **Tip:** use `--dry-run` first to list all files that would be deleted.
+
+
+
+
+# Example 2: Conflict resolution when cherry-picking (1)
+
+
+If you follwed **Example 1**, reset the `myBranch` branch:
+```
+$ git checkout myBranch
+$ git reset --hard HEAD~1
+```
+Get the SHA1 of the commit on the `myNewBranch` branch:
+```bash
+$ git show myNewBranch HEAD
+```
+Then, cherry-pick that commit:
+```bash
+$ git cherry-pick <SHA1>
+```
+
+
+
+# Example 2: Conflict resolution when cherry-picking (2)
+
+You will get a message that there is a conflict:
+```
+error: could not apply e3ffc09... edit content of template
+hint: after resolving the conflicts, mark the corrected paths
+hint: with 'git add <paths>' or 'git rm <paths>'
+hint: and commit the result with 'git commit'
+```
+* Start the merge tool as before:
+```
+$ git mergetool
+```
+* Resolve the conflict and save. Then:
+```bash
+$ git cherry-pick --continue
+```
+The remaining steps are the same as explained in **Example 1**.
\ No newline at end of file
diff --git a/2019/2019-10-10_advancedGitTraining-SIU/slides/gettingStarted.md b/2019/2019-10-10_advancedGitTraining-SIU/slides/gettingStarted.md
new file mode 100644
index 0000000000000000000000000000000000000000..07181df4432645ce5ac8268e4c22e6f0b9c33125
--- /dev/null
+++ b/2019/2019-10-10_advancedGitTraining-SIU/slides/gettingStarted.md
@@ -0,0 +1,26 @@
+# Getting Started
+
+* Fork and then clone the tutorial repository
+  <a href="https://github.com/LCSB-BioCore/advanced-git-practice">https://github.com/LCSB-BioCore/advanced-git-practice</a>
+
+    ```bash
+    $ git clone git@github.com:<first.last>/advanced-git-practice.git
+    ```
+
+* Add a remote `upstream`
+    ```bash
+    $ cd advanced-git-practice
+    # add upstream URL
+    $ git remote add upstream git@github.com:<first.last>/advanced-git-practice.git
+    $ git fetch upstream
+    ```
+* Check the remotes with:
+    ```bash
+    $ git remote -v
+    ```
+
+* Create the `develop` branch and your own branch `myBranch` based on the `develop` branch from `upstream` using the `-b` flag
+    ```bash
+    $ git checkout -b develop upstream/develop
+    $ git checkout -b myBranch
+    ```
\ No newline at end of file
diff --git a/2019/2019-10-10_advancedGitTraining-SIU/slides/ignore.md b/2019/2019-10-10_advancedGitTraining-SIU/slides/ignore.md
new file mode 100644
index 0000000000000000000000000000000000000000..7015bcd0695709670a97ef9365db11ff52c38962
--- /dev/null
+++ b/2019/2019-10-10_advancedGitTraining-SIU/slides/ignore.md
@@ -0,0 +1,17 @@
+# Ignore files
+
+In the file `.gitignore`, all untracked files that should be ignored by `git` are listed:
+```
+.DS_Store
+data
+*.csv
+```
+
+If you want to exclude certain files from this list:
+```
+!*.yml
+config/*.yml
+```
+This tracks changes in all yml file, but not in the `config` folder.
+
+Examples: www.gitignore.io
\ No newline at end of file
diff --git a/2019/2019-10-10_advancedGitTraining-SIU/slides/img b/2019/2019-10-10_advancedGitTraining-SIU/slides/img
new file mode 120000
index 0000000000000000000000000000000000000000..da691af2f37792b59fd709f988ab0807e52149da
--- /dev/null
+++ b/2019/2019-10-10_advancedGitTraining-SIU/slides/img
@@ -0,0 +1 @@
+../../2019-09-24_advancedGitTraining/slides/img
\ No newline at end of file
diff --git a/2019/2019-10-10_advancedGitTraining-SIU/slides/index.md b/2019/2019-10-10_advancedGitTraining-SIU/slides/index.md
new file mode 100644
index 0000000000000000000000000000000000000000..5dd3a60ca7fe98075c76bbd76dbb0686ad6c7d55
--- /dev/null
+++ b/2019/2019-10-10_advancedGitTraining-SIU/slides/index.md
@@ -0,0 +1,19 @@
+# Advanced Git Training - SIU
+
+## October 10, 2019
+
+<div style="top: 6em; left: 0%; position: absolute;">
+    <img src="theme/img/lcsb_bg.png">
+</div>
+
+<div style="top: 5em; left: 60%; position: absolute;">
+    <img src="slides/img/r3-training-logo.png" height="200px">
+    <br><br><br>
+    <h1>Advanced Git Concepts</h1>
+    <br><br><br>
+    <h2>
+        Laurent Heirendt, PhD<br><br>
+        laurent.heirendt@uni.lu<br><br>
+        <i>Luxembourg Centre for Systems Biomedicine</i>
+    </h2>
+</div>
diff --git a/2019/2019-10-10_advancedGitTraining-SIU/slides/list.json b/2019/2019-10-10_advancedGitTraining-SIU/slides/list.json
new file mode 100644
index 0000000000000000000000000000000000000000..fdf6a0f656a16a408409b37117a58d811c298f92
--- /dev/null
+++ b/2019/2019-10-10_advancedGitTraining-SIU/slides/list.json
@@ -0,0 +1,14 @@
+[
+    { "filename": "index.md" },
+    { "filename": "overview.md" },
+    { "filename": "gettingStarted.md" },
+    { "filename": "ignore.md" },
+    { "filename": "amend.md" },
+    { "filename": "reset.md" },
+    { "filename": "revert.md" },
+    { "filename": "rebase.md" },
+    { "filename": "chPick.md" },
+    { "filename": "merge.md" },
+    { "filename": "conflict.md" },
+    { "filename": "thanks.md" }
+]
diff --git a/2019/2019-10-10_advancedGitTraining-SIU/slides/merge.md b/2019/2019-10-10_advancedGitTraining-SIU/slides/merge.md
new file mode 100644
index 0000000000000000000000000000000000000000..4ee132e758d160d5dac13713f32c7d33e22b6329
--- /dev/null
+++ b/2019/2019-10-10_advancedGitTraining-SIU/slides/merge.md
@@ -0,0 +1,40 @@
+# Merging branches locally
+
+* Merge a branch into another one locally
+* Combines all the commits from a source branch onto a target branch
+* In practice, this is very useful if you 'just want to try out something', or 'draft' something
+
+
+
+# Example (1)
+
+* Create a new branch from your `myBranch` branch:
+```bash
+$ git checkout myBranch
+$ git checkout -b myNewBranch
+```
+
+* Add two files to the `myNewBranch` branch in two separate commits:
+```bash
+$ echo "# Trevor Westman" > trevor.md
+$ # add and commit the file trevor.md
+$ echo "# Gustav Bergen" > gustav.md
+$ # add and commit the file gustav.md
+```
+
+
+
+# Example (2)
+
+* Check the `log` of the `myNewBranch` and `myBranch` branches:
+```bash
+$ git log myBranch
+$ git log myNewBranch
+```
+
+* Go to `myBranch` and merge the `myNewBranch` branch into it
+```bash
+$ git checkout myBranch
+$ git merge myNewBranch
+$ git log myBranch
+```
diff --git a/2019/2019-10-10_advancedGitTraining-SIU/slides/overview.md b/2019/2019-10-10_advancedGitTraining-SIU/slides/overview.md
new file mode 100644
index 0000000000000000000000000000000000000000..3b769f404405e775441c2d5d5492abf7a39ef80c
--- /dev/null
+++ b/2019/2019-10-10_advancedGitTraining-SIU/slides/overview.md
@@ -0,0 +1,17 @@
+# Overview
+
+1. Installation and getting started
+
+2. Amend last commit
+
+3. Resetting to a previous commit
+
+4. Reverting commits
+
+5. Rebasing in Git
+
+6. Git cherry-picking
+
+7. Merging branches
+
+8. Conflict Resolution
diff --git a/2019/2019-10-10_advancedGitTraining-SIU/slides/rebase.md b/2019/2019-10-10_advancedGitTraining-SIU/slides/rebase.md
new file mode 100644
index 0000000000000000000000000000000000000000..cc4197aeb17cd235112545ffcf168856e63c1354
--- /dev/null
+++ b/2019/2019-10-10_advancedGitTraining-SIU/slides/rebase.md
@@ -0,0 +1,156 @@
+# Rebasing (1)
+
+* `git rebase` enables to shift forward your commits in time
+* Move/combine a sequence of commits to a new base commit
+* Avoid discrepancies when multiple people work on the same project
+* Linear git history (no merge commits)
+* Rebasing is like saying, “I want to base my changes on what everybody has already done.”
+
+Imagine the following situation:
+<div style="top: 14em; left: 25%; position: absolute;">
+    <img src="slides/img/beforeRebase.png" height="500px">
+</div>
+
+* There are commits on `develop` that aren't in `myBranch`.
+
+
+
+# Rebasing (2)
+
+* After rebase, the commits in the `myBranch` branch will be place on top of `develop`.
+
+<div style="top: 5em; left: 25%; position: absolute;">
+    <img src="slides/img/afterRebase.png" height="500px">
+</div>
+
+
+
+# Example (1):
+
+* A merge request against `develop` is still open. **Repository maintainer: review, and merge it.**
+
+* Create a file in your branch `myBranch`
+```bash
+$ git checkout myBranch # if necessary
+$ echo "# List of attendees" > list.md
+$ # add and commit the file
+```
+
+* Then, update your `develop` branch from the `upstream` remote:
+```bash
+$ git fetch upstream
+$ git checkout develop
+$ git merge upstream/develop
+$ git checkout myBranch
+```
+
+* Check the histories of both branches
+```bash
+$ git log
+```
+
+
+
+# Example (2):
+
+* Rebase `myBranch` on top of the updated `develop`:
+```bash
+$ git checkout myBranch
+$ git rebase develop
+```
+
+* Check the history of your branch again
+```bash
+$ git log
+```
+
+* If you pushed previously your branch `myBranch`, you need to rewrite its history remotely - you need to **force push**.
+
+
+
+# Interactive Rebasing - flag `-i`
+
+* An interactive rebase is performed with the `-i` flag:
+
+```bash
+git rebase -i <branch>
+```
+
+* Enables more precise control over the rebased commits
+* Before committing many actions are available
+
+```bash
+#  p, pick = use commit
+#  r, reword = use commit, but edit the commit message
+#  e, edit = use commit, but stop for amending
+#  s, squash = use commit, but meld into previous commit
+#  f, fixup = like "squash", but discard this commit's log message
+#  x, exec = run command (the rest of the line) using shell
+```
+
+
+
+# Example 1: Reword and fixup (1)
+
+* Switch to your own branch `myBranch`
+* Add and commit two files to this branch:
+
+```bash
+$ # git checkout myBranch && cd attendees
+$ echo "# William Odell" > william.md
+$ # add and commit the file william.md with the message 'add william to attendee list'
+$ echo "# Roberta Ross" > roberta.md
+$ # add and commit the file roberta.md with the message 'add roberta to attendee list'
+$ git push origin myBranch
+```
+
+Now, we want to:
+
+- Reword the first commit's message to: `Add William and Roberta to attendee list`
+
+- Combine the second and first commit into one
+
+- Omit the commit message of the second commit.
+
+
+
+
+# Example 1: Reword and fixup (2)
+
+* Perform an interactive rebase with the two last commits:
+
+```bash
+$ git rebase -i HEAD~2
+```
+
+* The dialog shows up (example):
+```bash
+$ pick 1234567 add william to attendee list
+$ pick abcdef0 add roberta to attendee list
+```
+
+* The keywords `pick` can now be changed to `reword` and `fixup` respectively:
+```bash
+$ reword 1234567 add william to attendee list
+$ fixup abcdef0 add roberta to attendee list
+```
+* Edit by typing `i`
+* Change the message of commit `1234567` to `Add William and Roberta to the attendee list`
+* Save with `:wq`
+
+
+
+# Example 2: Pick and squash (2)
+
+* If you want to **keep** both commit messages in one commit, change the action to `squash`
+```bash
+$ pick 1234567 add william to attendee list
+$ squash abcdef0 add roberta to attendee list
+```
+
+* This will create a commit with both modified files, with the commit message being a combination of the two commit messages.
+
+* Push the changes to `myBranch` with `-f`:
+```bash
+$ git push origin myBranch -f
+```
\ No newline at end of file
diff --git a/2019/2019-10-10_advancedGitTraining-SIU/slides/reset.md b/2019/2019-10-10_advancedGitTraining-SIU/slides/reset.md
new file mode 100644
index 0000000000000000000000000000000000000000..1dbceddb25a6bdc797e5e20b723b717cb97a79e2
--- /dev/null
+++ b/2019/2019-10-10_advancedGitTraining-SIU/slides/reset.md
@@ -0,0 +1,59 @@
+# Reset a branch
+
+* Enables to reset a branch back to a previous commit
+* Discards ALL commits made after the selected commit HEAD
+
+* This happens often in **practice**:
+    you pushed to a branch, then realize that you made a mistake in the commit, and want to start over.
+
+
+
+# Example: Hard reset of a branch (1)
+
+* Start by committing two files:
+```bash
+# commit first file ...
+$ echo "# CV of Firstname Lastname" > myCV.md
+$ git add myCV.md
+$ git commit -m "add cv for Firstname Lastname"
+# commit second file ...
+$ echo "# Biography of Firstname Lastname" > myBio.md
+$ git add myBio.md
+$ git commit -m "add biography for Firstname Lastname"
+$ git push origin myBranch
+```
+
+* Check the commits, copy the `SHA1` of the **second last** commit:
+```bash
+$ git log
+```
+
+
+
+# Example: Hard reset of a branch (2)
+
+* Use the `reset --hard` command in order to undo the commit with `<SHA1>`:
+```bash
+$ git reset --hard <SHA1>
+```
+
+* Check what happened in the log
+* Force push your branch (overwrite the history) with `-f`:
+```bash
+$ git push origin myBranch -f
+```
+
+
+
+# Notes
+
+* Alternatively, you can also remove the last commit:
+```bash
+$ git reset --hard HEAD~1
+```
+* With a `--hard` reset, the index and the working tree are reset.
+
+* If you omit the `--hard` flag, a mixed reset is made. This resets the index, but not the working tree
+```bash
+$ git reset HEAD~1
+```
\ No newline at end of file
diff --git a/2019/2019-10-10_advancedGitTraining-SIU/slides/revert.md b/2019/2019-10-10_advancedGitTraining-SIU/slides/revert.md
new file mode 100644
index 0000000000000000000000000000000000000000..da6254678d153d10ae7321da9c1e9c2c86065ab5
--- /dev/null
+++ b/2019/2019-10-10_advancedGitTraining-SIU/slides/revert.md
@@ -0,0 +1,24 @@
+# Reverting a commit
+
+* Enables the deletion of committed commits by reverting the changes.
+
+* A trace is kept in history of the original commit and the reverted one.
+
+
+
+# Example:
+
+* On your branch, create and commit a file:
+```bash
+$ echo "# Grades for Firstname Lastname" > grades.md
+$ git add grades.md
+$ git commit -m "File with grades for Firstname Lastname"
+```
+
+* Note down the `SHA1` by checking the `log`
+
+* Use the `git revert` command to undo that commit:
+```bash
+$ git revert <SHA1>
+```
+* This will open a dialog (`vim`-like editor). Exit with `:wq`
\ No newline at end of file
diff --git a/2019/2019-10-10_advancedGitTraining-SIU/slides/thanks.md b/2019/2019-10-10_advancedGitTraining-SIU/slides/thanks.md
new file mode 100644
index 0000000000000000000000000000000000000000..4867fa1e3edb10b52ef2a71e453296cffe21bab9
--- /dev/null
+++ b/2019/2019-10-10_advancedGitTraining-SIU/slides/thanks.md
@@ -0,0 +1,8 @@
+# Thank you.
+
+<center><img src="slides/img/r3-training-logo.png" height="200px"></center>
+
+Contact us if you need help:
+
+<a href="mailto:r3lab.core@uni.lu">r3lab.core@uni.lu</a>
+