Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
git-course.html 9.83 KiB
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="author" content="Christian Krause" />
    <meta name="dcterms.date" content="2015-06-15" />
    <title>Git Workshop</title>
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <link rel="stylesheet" href="reveal.js/css/reveal.css"/>
    <style type="text/css">code{white-space: pre;}</style>
    <link rel="stylesheet" href="reveal.js/css/theme/black.css" id="theme" />

    <!-- If the query includes 'print-pdf', include the PDF print sheet -->
    <script>
      if( window.location.search.match( /print-pdf/gi ) ) {
        var link = document.createElement( 'link' );
        link.rel = 'stylesheet';
        link.type = 'text/css';
        link.href = 'reveal.js/css/print/pdf.css';
        document.getElementsByTagName( 'head' )[0].appendChild( link );
      }
    </script>

    <!--[if lt IE 9]>
    <script src="reveal.js/lib/js/html5shiv.js"></script>
    <![endif]-->
  </head>

  <body>
    <div class="reveal">
      <div class="slides">

        <section>
          <h1 class="title">Git Workshop</h1>
          <h3 class="author">Dirk Sarpe & Christian Krause</h3>

          <aside class="notes">
            <ul>
              <li>if you have questions ask them right away</li>
            </ul>
          </aside>
        </section>

        <section id="poll-why-are-you-here" class="titleslide slide level1" data-markdown>
          ## Poll
          # Why are you here?

          Note:
          - Someone (like us) told you it ~~might be~~ **is** useful.
          - You never took the time to really learn it.
          - You already know and use it, want to show off / learn new tricks.

          - Somebody forced you to come here.
          - You wanted to get away from your desk for once and maybe take a nap.
        </section>

        <section id="outline" class="titleslide slide level1" data-markdown>
          # Outline

          1. Intro
          2. Git Commands
          3. GitLab / GitHub
          4. Workflows

          Note:
          - jeder Block ~ 1.5h
          - insgesamt 2h mit Pause
          - 8h - ein ganzer Tag git
          - ein-satz-beschreibungen zu den abschnitten
            - 0. why vcs, why git, getting started with git
            - 1. git basics
            - 2. web collaboration tools
            - 3. how to collaborate in organized manner
        </section>

        <section>
          <section class="titleslide slide level1" data-markdown>
            ## Block 1
            # Introduction

            Note:
            - quickly talk about block outline
              - why vcs? why git?
              - installation git client
              - setup GitLab / GitHub accounts
              - getting started with git (try git)
          </section>

          <section class="slide level2" data-markdown>
            ### Have you ever seen this?

            ![foo](img/draft_mess.png)

            Note:
            - Dirk erklärt seine mess
            - wouldn't it be nicer to have
          </section>

          <section class="slide level2" data-markdown>
            ### wouldn't it be nicer to have
            # version control

            ```
            Dirk Sarpe         14 minutes ago   fix reference
            Dirk Sarpe         5 days ago       adapt figures to nature
            Christian Krause   6 days ago       add figure captions
            Dirk Sarpe         7 weeks ago      adds mean values to analysis
            Christian Krause   7 weeks ago      adds abstract
            ```

            Note:
            - git log --pretty=format'%an %ar %s'
            - and as you can see not only for source code
          </section>

          <section class="slide level2" data-markdown>
            ## have you ever ...

            - review history (see diff)
            - wanted to go back in time
            - maintain multiple versions
              - hint: for different journals
              - try things out without breaking what works

            Note:
            - 
          </section>

          <section class="slide level2" data-markdown>
            ## have you ever ...

            - collaborate
            - who made that error
            - see project progress
            - lost code (no backup)

            Note:
            - 
          </section>

          <section class="slide level2" data-markdown>
            # yes?

            Note:
            - 
          </section>

          <section class="slide level2" data-markdown>
            # use vcs!

            Note:
            - 
          </section>
        </section>

        <section>
          <section class="titleslide slide level1" data-markdown>
            ## Block 1
            # git

            Note:
            - 
          </section>

          <section class="titleslide slide level1" data-markdown>
            ![git](img/what-is-git.jpg)

            Note:
            - 
          </section>

          <section class="titleslide slide level1" data-markdown>
            ![git](img/what-is-git-answer.jpg)

            Note:
            - 
          </section>

          <section class="titleslide slide level1" data-markdown>
            ![git](img/say-what.jpg)

            Note:
            - 
          </section>

          <section class="titleslide slide level1" data-markdown>
            ## what is git? (2nd try)
            ### seriously

            # TODO image gitk all, visual representation of git parent child tree with remotes,
            tags, good commit messages, etc. mit local change der remote noch nicht da ist

            Note:
            - am bild dvcs erklären!
          </section>

          <section class="slide level2" data-markdown>
            ![git](img/idontalwaysusevcs.jpg)

            Note:
            - 
          </section>

          <section class="slide level2" data-markdown>
            ## Why do we all use git?

            #### non-technical
            - any workflow
            - collaboration
            - experimentation
            - undo mistakes
            - state of the art (best tool for the job)
            - all the cool kids do it

            Note:
            - 
          </section>

          <section class="slide level2" data-markdown>
            ## Why do we all use git?

            #### technical

            - never lose data (not just remote but also file integrity)
            - easy conflict resolution
            - local (your own copy of everything)
            - implies speedy gonzales

            Note:
            - 
          </section>
        </section>
      </section>

      <section>
        <section id="prereq" class="titleslide slide level1" data-markdown>
          ### Block 1
          ## Git Demo

          Note:
          - vorher fragen, wer alles client braucht und noch accounts braucht, damit wir wissen,
          wieviel zeit wir uns für try git nehmen können
          - config
          - init
          - git add foo bar
          - git commit -m 'foo bar'
          - prima
        </section>
      </section>

      <section>
        <section id="prereq" class="titleslide slide level1" data-markdown>
          ### Block 1
          ## Checking Prerequisites

          - GitHub / GitLab account
          - local git client installation
          - bonus: your own project without VCS

          Note:
          - wenn git client selbst nicht aufsetzen kann, dann bitte halbe stunde früher
          - registration to the course
          - git client includes your own notebook
        </section>
      </section>


          <section class="slide level2" data-markdown>
            ## 

            - 

            Note:
            - 
          </section>
        </section>
        <section>
          <section class="titleslide slide level1" data-markdown>
            # VCS for me

            - 

            Note:
            - 
          </section>

          <section class="slide level2" data-markdown>
            ## 

            - 

            Note:
            - 
          </section>
        </section>

        <section>
          <section class="titleslide slide level1" data-markdown>
            # 

            - 

            Note:
            - 
          </section>

          <section class="slide level2" data-markdown>
            ## 

            - 

            Note:
            - 
          </section>
        </section>

        <section id="eof" data-background="img/trex.png"><h1>EOF</h1></section>
      </div>
    </div>

    <script src="reveal.js/lib/js/head.min.js"></script>
    <script src="reveal.js/js/reveal.js"></script>

    <script>
      Reveal.initialize({
        controls: true,
        progress: true,
        history: true,
        center: true,
        maxScale: 1.5,
        slideNumber: false,
        theme: Reveal.getQueryHash().theme,
        transition: Reveal.getQueryHash().transition || 'default',

        dependencies: [
          { src: 'reveal.js/lib/js/classList.js', condition: function() { return !document.body.classList; } },
          { src: 'reveal.js/plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
          { src: 'reveal.js/plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } },
          { src: 'reveal.js/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
          { src: 'reveal.js/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
          { src: 'reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
        ]
      });
    </script>
  </body>
</html>