Skip to content

RWorkflow-Workshops/WSDS-StLouis

Repository files navigation

Before the workshop, please send the organizers your GitHub username so we can add you to the workshop GitHub repositories that you will use.

Git-ting It Together: Learn to Use Git and GitHub for Your Projects

Instructor(s):

Training description

Git and GitHub are used throughout the data science community, not just to keep track of code changes but also for project management and sharing of research. This workshop will get you up and running with Git and GitHub and teach you how to use some of the most powerful features. By the end of this workshop, you will be able to use Git and GitHub in the browser to create GitHub repositories; fork repositories, add content, and push back to the main repository; browse the state of your repository content at points in the past; make releases; and organize a project using GitHub issues and a project board. No prerequisites besides a GitHub account. Bring a laptop to access GitHub via a browser.

Teams

Here, everyone will contribute to a markdown document and github project within the github browser. You and your team will contribute to one of the St. Louis topics!

To make things easier, confine your searches on the surounding 1 square mile:

Code of Conduct

Remember, this is a "Yes, And!" enviornment. There are no wrong answers! We are all here to learn and support each other 🙌

In short, we expect each participant to follow the workshop's code of conduct. If you have any concerns, please reach out to the workshop organizers.

Agenda

Presentation slides

8:00-8:20: Welcome & Warm Up Activity: Zoo Tycoon!

If anyone remember's this early 2000's business simulation video computer game, you'll recall that this world focus around building and running successful zoo scenarios. Here we will quickly do a simplified version with a focus on project managment.

  • Form groups of ~4 people
  • Set up a project board on the table or wall. Prepare 4 columns with blue masking tape for each stage of production:
    • 📋 Ideas: Generate good, bad, and maybe ideas!
      • Pick an exhibit to build (e.g., reptiles, mystical sea monsters, dinosaurs, insects, safari) and collaboratively decide what your exhibit needs and write down each "task" (aka drawing assignment) on a post-it (e.g., animals, toys for animals, benches, bathing pools).
    • 🎫 Ready to work on: The idea now has a clear path forward and someone can pick up the task.
      • Organize tasks to get the ready for deligation.
    • 👷 In progress: Assign tasks and get to work! Let your team mates know you're on it.
    • ✔️ Done: You did it! Let your team mates know you got the job done.
  • (5 min each:) Report out! What was in your zoo/exhibit and how efficient was the team at getting the task done?

8:20-8:40 Lecture and Demo: Introduce GitHub

  • What are goals are for today
  • Introduce GitHub in the browser
  • Introduce GH Project Boards
  • Show how to add “cards”

8:40-9:10 Learning in practice: Add tasks to your GitHub Project Board

  • Each team member comes up with a topic with 2-3 sub topics
  • Choose topic ideas and assign tasks In the project, add tasks with the "+ Add tasks" button at the bottom of the "New" column. These need to be simple tasks that will take ~5 minutes.
  • Make each of your tasks into issues Make a bulleted list of
  • Make each of your subtasks issues Within the main issue, you can make your bulleted tasks into issues. Click on the issue title on the webpage, scroll over to each subtask and on the right hand side you will see an icon to make it into an issue.

9:10-9:30 Lecture and Demo: Edit markdown documents in the browser

  • Introduce more GitHub terminology
  • Adding text
  • Adding images
  • Adding links
  • Committing
  • History

9:30-9:45 Learning in practice: Edit your sandbox markdown file and commit your changes

9:45-10:00 Demo and Lecture: Using branches

Why do we need branches? Bad things happening if you are not careful about how and when you commit changes!

  • What is a branch
  • How to create a branch
  • How to make sure you are on your branch
  • Work on [group name].md in our OWN branch

10:00-10:30 Learning in practice: work on tasks in your own branch

  • Find your branch You can click on the hyperlink in the issue or find your branch on the branches page of the repo. Each branch will be named with the number of your issue and the name of the issue.
  • Move all tasks on the project board to done.
  • Work on your tasks in your branch. Move all tasks on the project board to from idea, ready, in progress, and done!

10:30-10:45 Lecture and Demo: Using pull requests

Demo: Eli and Em doing their 2 pull request from their branches on bridges.md. Eli will commit to main. Em will commit to main after Eli and there will be a merge conflict!

  • What is a Pull Request
  • How to do a Pull Request from the browser

10:45-11:00 🍵 Break with Light Refreshments 🍩

11:00-11:30 Learning in practice: Take time to organize and do your pull requests

  • Add new tasks with the pull requests
  • Decide on commit order (aka, who will commit first, second, etc.)
  • As you complete pull requests and resolve the merge conflicts, you might come up with new tasks

11:15-11:30 Lecture: GitHub issues

  • Quick introduction; show how to search for an issue and add to board

11:30-11:45 Talk about next learning steps & demo

  • Other GitHub Kanban board features
  • Creating issues and using them to build branches and complete tasks (and auto move tasks across your Kanban board!)
  • More about project management in GitHub

11:45-12:00 Discussion

Thanks for coming!