NSAW GitHub Workshop May 8 2pm-5:30pm
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 Providence topics!
Code of Conduct
Remember, this is a "Yes, And!" environment. There are no wrong answers! We are all here to learn and support each other :raised_hands:
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
2:00-2:20: Welcome & Warm Up Activity: Aquarium!
Here we will quickly do an exercise focused on project managment using building an aquarium as an example project, with sub-tasks (for example, exhibits in the aquarium!).
- 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:
- :clipboard: Ideas: Generate good, bad, and maybe ideas!
- Pick an aquarium exhibit to build (e.g., touch tank, marine mammal center, giant ocean tank, sea turtle exhibit) and collaboratively decide what your exhibit needs and write down each "task" (aka drawing assignment) on a post-it (e.g., sand, fish, seals, crabs, seal toys, water, plexiglass).
- :ticket: 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 delegation.
- :construction_worker: In progress: Assign tasks and get to work! Let your team mates know you're on it.
- :heavy_check_mark: Done: You did it! Let your team mates know you got the job done.
- (5 min) Report out! What were your animal components and how efficient was the team at getting the task done?
2:20-2:40 Lecture and Demo: Introduce GitHub
- What our goals are for today
- Introduce GitHub in the browser
- Introduce GH Project Boards
- Show how to add “cards”
2:40-3:00 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.
3:00-3:15 Lecture and Demo: Edit markdown documents in the browser
- Introduce more GitHub terminology
- Adding text
- Adding images
- Adding links
- Committing
- History
3:15-3:30 Learning in practice: Edit your sandbox markdown file and commit your changes
3:30 - 4:00 :coffee: Coffee break! :cake:
4:00-4:15 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
4:15-4: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!
4:30-4:45 Demo and Lecture: Pull requests and merge conflicts
- How to open a pull request
- How to merge a pull request
- How to resolve merge conflicts
4:45-5:15 Learning in practice: resolving pull requests and merge conflicts
5:15-5:30 Discussion
- How to convert project tasks to issues
Materials for future learning
Thanks for coming!