Follow these principles to help guide your design choices.
Promote good git behavior
Encourage using git sucessfully so that users can better communicate the work they've done to their teams and for their own records. For example, we encourage well written commit messages by making partial committing easy.
Balance the spectrum between “git” and “magic”
Consider what the UI explicitly shows the user and what is hidden behind controls and feels like "magic". It's important to achieve a good balance between these two paradigms, so that users can understand what is happening and troubleshoot when necessary.
Prioritize beginners over advanced developers
Always consider the needs of, and optimize for, beginner developers in favor of advanced developers.
Help developers learn as they go
Use git terminology and add clarifying information and hints throughout to help users understand just enough of what’s going on behind the scenes. When git language is used accurately, users can more easily troubleshoot and learn concepts quickly.
Put what’s next front and center
Always make it clear what the next step is after any given action. This helps beginner develolpers to learn common workflows.