Git Workflows

When you begin working collaboratively with other developers, the workflow with which you handle your changes becomes important.

For this assignment, you’ll be sitting down with your project team and creating a step-by-step Git workflow. The purpose of writing out a Git workflow is to keep yourself from making mindless mistakes, and also have a plan on keeping your git history and git branches neat and well-named. It may not seem essential with only 2 people working on a 2-file repository, but you’ll want it badly when you’re working with 5 people on a complex project during project week.

Tasks

Begin by reading this comparison of several git workflows. Think about the strengths and weakness of each. What is the purpose, the intended benefit of each? What sorts of work might each facilitate or make more difficult?

Once you have read up on several options, come up with a git workflow you will use with your team. Document this workflow, and then use it.

What I’m expecting:

  • Step-by-step git commands with annotation about when to do them
  • What to name your branches so you can make sense of them later
  • How frequently you should make commits, new branches, and pull requests to master
  • How you plan to communicate what you have and have not yet done

Of course, the only way this will be of any use to you is if you actually USE your workflow as you code and you UPDATE it if you realize there are any deficiencies. Trust me - this will help you if you use it!

As an example, here’s a real-world git workflow from a project provided by a former Code Fellows student: https://docs.google.com/document/d/1AKX40p7DhzXmq-jMbashHYkDkXZZI_y1zkgobOJNeiU/edit?usp=sharing

To clarify, Phabricator is a kanban board used by that project, and git rebase is a command you should avoid until you are ready for it. If you want to check out a kanban board, look at trello.com or waffle.io

Submitting Your Work

Use the text area in the Canvas assignment to write your git workflow. If you want to hold on to it, you can also put it into Google Docs or some other public location and submit a link to Canvas. I need to read it.