Git Support Golf
A stupid game by Evan Coury to test and improve your git troubleshooting skills.
How to Play
A new round begins the moment a peer comes to you for help with a git problem.
- The person asking for help may initially explain the nature of their problem, but not provide the output of any git commands at first.
- Decide what par level the issue should be. Here are some examples:
|Type of Issue||Par Level|
|handling remotes||Par 1|
|revert merge||Par 2|
|merge conflict||Par 3|
|complex rebase||Par 4|
- Assess: Now, you may ask the person to run read-only commands (i.e., git status, git log) and provide you with the output to assess the situation. Each command counts as a shot towards par. At this stage, you are not trying to solve the problem, only assess. (To answer your question, no,
git log -n5 && git status && git branch -vis not one command.)
- Solve: Once you're confident you understand the problem and how to fix it, you may propose a solution.
- A proposed solution is a sequence of commands (i.e., git reset, git checkout, git revert, etc) that you ask the person having trouble to run to resolve their problem.
- If your proposed solution does not solve the problem, it counts as a shot, and you keep playing (either do more assessment, or propose another solution).
- Once you propose a complete solution that solves the problem, you've won. Try to beat par and not completely destroy your peer's repositories.
FAQ (most of which are actually questions)
But I'm the one asking for Git help.
Git Support Golf can be great for you too! Next time you run into an issue, try playing a round with yourself. I never said Google was off limits.
I want to play but I have no peers or friends that ask me for Git help. I'm lonely.
Cheer up, buddy. Simply jump in the #git channel on the Freenode IRC network for an endless supply of people having Git troubles. You'll be under par in no time. You might even make some new friends in the process!
I have an idea to improve the game. What do?
Leave a comment on this gist. Be persuasive.