Before the workshop, please send the organizers your GitHub username so we can add you to the workshop GitHub repositories that you will use.
-
Elizabeth โEliโ Holmes, NOAA Fisheries, Northwest Fisheries Science Center Send Email, Website
-
Emily "Em" Markowitz, NOAA Fisheries, Alaska Fisheries Science Center Send Email, Website
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.
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!
- Bridges: (Eli and Em's demo team) markdown doc, project
- Restuarants: markdown doc, project
- Parks: markdown doc, projects
- Sports: markdown doc, projects
- Music: markdown doc, project
- Public Art: markdown doc, projects
- History: markdown doc, project
To make things easier, confine your searches on the surounding 1 square mile:
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.
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.
- ๐ Ideas: Generate good, bad, and maybe ideas!
- (5 min each:) Report out! What was in your zoo/exhibit and how efficient was the team at getting the task done?
- What are goals are for today
- Introduce GitHub in the browser
- Introduce GH Project Boards
- Show how to add โcardsโ
- 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.
- Introduce more GitHub terminology
- Adding text
- Adding images
- Adding links
- Committing
- History
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
- 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!
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
- 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
- Quick introduction; show how to search for an issue and add to board
- 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