We're back for 2015!
Tis the holiday season again, where we relax at home, eat loads of good food and spin driedels. This year, let's keep learning all the great stuff learned during the vBrownBag DevOps sessions.
Push yourself to use GitHub everyday throughout the holiday season so that by 2016 you're ready to share your next project. Here's how:
- Schedule time in your calendar for gitting in shape everyday for 30 days between December 1st - January 1st
- Choose your skill level: Beginner, Intermediate, or Expert
- Follow the directions under your skill level!
- Fork this repository to show that you're participating!
That's it! If you get stuck or just want to chat with others, be sure to tweet with the hashtag #vBrownBag
or on the Geek Speak Slack Channel in the #learn-github
channel. We'll be out there to help.
Note: The Slack link doesn't always load due to using Heroku free tier. If you want a faster response, ping Rob on Twitter.
We're also recording training daily throughout December. You can register to be notified of #vBrownBag events at https://attendee.gotowebinar.com/register/4522811764229913858.
Recordings are currently available on YouTube in our Commitmas Playlist and will be available soon in iTunes
- Tuesday 12/1 - What is Git/GitHub and why should you use it? With Matthew Brender
- Wednesday 12/2 - Setting up Windows with Jonathan Frappier
- Thursday 12/3 - Setting up OSX with Timmy Carr
- Friday 12/4 - Git Basics - Clone, Add, Commit, & Push with Anthony Elizondo
- Monday 12/7 - Branching Repositories - Intro, Creating & Checking out branches with Mike Marseglia
- Tuesday 12/8 - Forking Repositories and Pull Requests with Matt Oswalt
- Wednesday 12/9 - Merge and Merge Conflicts with Apollo Catlin
- Thursday 12/10 - Wait I screwed something up and need to roll back! with Kyle Ruddy
- Friday 12/11 - Rebasing with Rob Nelson at a special time, 3PM Eastern
- Monday 12/14 - The art of the ignore: Using .gitignore with Eric Wright
- Tuesday 12/15 - Stop using '-m': Writing Good Commit Messages with Hart Hoover
- Wednesday 12/16 - Git Security Workflow - Ensure Confidential Data Not Shared with Edward Haletky
- Thursday 12/17 - Fun git tricks and aliases for bash users with Spencer Krum
- Friday 12/18 - How do you get a hoverboard from 2015 to 1955? Cherry-picking with Ryan McKern
- Monday 12/21 - Git workflow for supporting network devices with Matt Oswalt
- Tuesday 12/22 - Git worktree or flow with Igor Galić
- Wednesday 12/23 - Building Web Pages for your Project with Jekyll and Github.io with Kellan Damm
- Monday 12/28 - GitHub and Slack - Better together with Kellan Damm
- Tuesday 12/29 - Contributing to Open Source Projects with Jordan Rinke, Jon Donas, Dylan Ermet, Jadon Bennett, and Tanner Kerr
- Wednesday 12/30 - Bringing it all Together - Intro to Go with Anthony Chow
We all have different level of expertise when it comes to GitHub. Here are a few options based on your comfort level. Remember: focus on learning how git works and let the other topics follow.
##Beginner You're a beginner if: You're new enough to git that just the act of using it daily will be a lot of learning.
Setup:
- Create a GitHub account.
- Setup Git.
- Initialize your own new repository with a README.md.
- Clone your repository to your local development system.
Your challenge:
- Update the README.md file every single day with something you learned that day.
- Add a meaningful comment to your commit. Learn the right way to comment your commits.
- Push that commit to your GitHub repository.
- Create additional repositories for scripts that you've created to do your job.
- Learn how to use
git commit --amend
. - Keep your fork in sync with the original repo.
Helpful hints:
- Remember that the goal of this is to learn how to use GitHub, so focus on git, not other code you'd also like to learn.
- Feel free to use the GitHub website, native apps or command line. Watch this vBB on GitHub to help you along.
- Markdown is awesomely powerful, so challenge yourself to use some of the more complex syntax. You can learn it all here.
##Intermediate You're at an intermediate level if: You're comfortable with the basics of using git, have lurked around on GitHub but never contributed to a project.
Setup:
- Fork an interesting repository that you want to contribute to.
- Clone your repository to your local development system.
- Create a new branch to develop in.
Your challenge:
- Update the repository's Master branch every single day in some way.
- On your new branch, work on a meaningful contribution to your fork of the repository.
- Add meaningful comments to your commits when you commit on both branches.
- Open a Pull Request on the original repository from your new branch by the end of the 30 days of Commitmas!
- Learn how to use
git rebase
.
Helpful hints:
- Remember, documentation is code too (especially when using Markdown)! Find a project you want to support by improving documentation. Fork it and then make your contributions during this challenge.
##Expert You're an expert if: You've managed multiple contributor repositories before, have more than 5 pull request accepted, and want to join in Commitmas to really push yourself.
Setup:
- You've done this a few times, we don't need to tell you how!
Your challenge:
- Open a new Pull Request on open source repositories you use every single day for the 30 days of Commitmas! Don't forget to help out your beginner and intermediate level friends!
Helpful hints:
- You really don't need any, but if you complete this challenge, please tell me (@mjbrender) and I'll definitely buy you a beer.
These projects are soliciting pull requests through Commitmas and will be kind to new users without lots of questions along the way. Give back as part of Commitmas by opening Issues & PRs to any of them!
- Ruby Stargazer by @mjbrender - A tool to tally unique starrers across GitHub repositories for an organization.
- Transparent Travel by @mjbrender - A markdown-only repository to record where I'm flying and where I'd like to fly next.
- Anything Puppet by @rnelson0 - A growing collection of tools written for Puppet
- Anything Ansible by @mrlesmithjr - A growing collection of Ansible-based tools