Up and Running with Git: A GUI-based Approach Course

Course Summary

This course takes an unconventional and pragmatic approach to git and source control and will get you up to speed very quickly. Many git courses take a least common denominator approach and decide you need to learn "pure" git. That is, just the commands right in the terminal or command prompt.

Not Up and Running with Git. This course teaches you how to use git by leveraging the best UI tools from common editors such as Visual Studio Code and PyCharm as well as highly polished git applications including Atlassian's Sourcetree.

What students are saying

The first thing you'll notice when you kick off Michael's course is that there's no fluff and that's why I absolutely love it. After the initial set up of the environment, he drops you straight into PEP8 recommended styling.

There is no lecturing, there's just code and it's amazing. Every single concept is backed up by real and "live" examples. Michael even leaves certain, relatable mistakes in the course just to demonstrate how easy it is to make them.
-- Julian Sequeira (from @pybites)

Source code and course GitHub repository

github.com/talkpython/pragmatic-git-course

What will you learn?

In this course, you will:

  • How modern git-oriented editors and applications can level up your understanding of your git repository
  • The 6 core git concepts you need to understand to be effective with git (yes, just 6!)
  • Gain a clear understanding of what distributed source control is and how to visualize it
  • Work with source control using the most popular editors: PyCharm and Visual Studio Code
  • Create a new open source project with git and GitHub
  • Commit and track core files from your project, while excluding files that don't belong in source control
  • Synchronize with remote / hosted repositories
  • Merge file changes automatically and manually using 3-way merge tools
  • Learn about the advantages of branching for parallel work
  • Understand the 5 key reasons for branching and how they are similar and different
  • Tips and techniques for limiting merge conflicts across branches over time
  • Use GitFlow and PRs to make (and receive) an open source contribution
  • Many tips and tricks for improving your computer for working with git
  • And lots more

  • View the full course outline.

Who is this course for?

For anyone who needs to get better using git and source control. If you are brand new to git, the pragmatic and UI-based approach will help you get up to speed faster. And if you are an experienced developer, you'll see how choosing the right tools will multiply your productivity and insight into your code.

As for prerequisites, we assume:

  • No git or source control experience required
  • Familiarity with some programming language (we use Python but just a little)

The tools chosen and featured during this course are 100% free and most of them are open source.

Concepts backed by concise visuals

While exploring a topic interactively with demos and live code is very engaging, it can lose the forest for the trees. That's why when we hit a new topic, we stop and discuss it with concise and clear visuals.

Here's an example introducing the different reasons for branching and why to choose each style.

Example: Concepts backed by concise visuals

Follow along with subtitles and transcripts

Each course comes with subtitles and full transcripts. The transcripts are available as a separate searchable page for each lecture. They also are available in course-wide search results to help you find just the right lecture.

Each course has subtitles available in the video player.

Who am I? Why should you take my course?

Who is Michael Kennedy?

My name is Michael, nice to meet you. ;) There are a couple of reasons I'm especially qualified to teach you Python.

 1. I'm the host of the #1 podcast on Python called Talk Python To Me. Over there, I've interviewed many of the leaders and creators in the Python community. I bring that perspective to all the courses I create.

 2. I've been a professional software trainer for over 10 years. I have taught literally thousands of professional developers in hundreds of courses throughout the world.

 3. Students have loved my courses. Here are just a few quotes from past students of mine.

"Michael is super knowledgeable, loves his craft, and he conveys it all well. I would highly recommend his training class anytime." - Robert F.
"Michael is simply an outstanding instructor." - Kevin R.
"Michael was an encyclopedia for the deep inner workings of Python. Very impressive." - Neal L.

Free office hours keep you from getting stuck

One of the challenges of self-paced online learning is getting stuck. It can be hard to get the help you need to get unstuck.

That's why at Talk Python Training, we offer live, online office hours. You drop in and join a group of fellow students to chat about your course progress and see solutions via screen sharing.

Just visit your account page to see the upcoming office hour schedule.

This course is delivered in very high resolution

Example of 1440p high res video

This course is delivered in 1440p (4x the pixels as 720p). When you're watching the videos for this course, it will feel like you're sitting next to the instructor looking at their screen.

Every little detail, menu item, and icon is clear and crisp. Watch the introductory video at the top of this page to see an example.

Is this course based on Python 3 or Python 2?

This course is based upon Python 3. Python 2 is officially unsupported as of January 1st, 2020 and we believe that it would be ill-advised to teach or learn Python 2. This course is, and has always been, built around Python 3.

The time to act is now

Git has become the defacto way we build software. If you are not up to speed with git and source control, you'll be at a disadvantage. This course is focused on using the best tools to provide a deep and meaningful understanding of git. Take the course, level up your productivity today.

Course Outline: Chapters and Lectures

Introducing Git
36:50
Welcome
1:28
What is VCS
1:37
You should use VCS
1:14
Why choose git?
2:13
Prerequisite knowledge and experience
1:39
What will we cover?
3:30
Git the source code
1:54
Which UI tools will we use?
5:00
Why use GUIs for git?
7:12
Git != GitHub
1:40
Installing git
2:14
Git is distributed source control
4:21
Forks, stars, and PRs, not a thing in git
1:39
Your instructor: Michael Kennedy
1:09
The '6' core git operations
13:21
A quick roadmap before we dive in
2:23
Clone
1:09
Status
1:35
Commit and add
2:20
Push and pull
1:06
Log
1:25
Branch, checkout, and merge
1:14
The .git folder
2:09
Our first git repository
30:22
First repository introduction
2:06
Creating a hosted repository
2:46
Cloning a repo with Sourcetree
2:33
Connecting the repo to VS Code and PyCharm
2:07
Create a skeleton Flask app
2:43
Excluding files
4:09
Ignoring files in git and editors
4:22
Pushing changes to the hosted repo
2:07
Adding the jokes
3:04
Concept: .gitignore file
2:03
Local-only repositories
2:22
Teamwork: Merging
36:55
Merging overview
3:33
Setting up the second developer on Windows 10
3:06
Configuring Windows and VS Code to run Flask
2:52
Adding a feature: The Mac developer
3:48
Adding a feature: The Windows developer
4:24
Merging two change-sets together
5:45
Getting everyone back in sync
2:28
Yikes! Merge conflict, now what?
7:37
Staying *out* of the terminal
3:22
Teamwork: Branches
1:00:21
Branching introduction
1:36
Reason #1 for branching: Bug fixes
3:15
Reason #2 for branching: More stable development
1:40
Reason #3 for branching: Experimentation
2:24
Reason #4 for branching: Feature branches
2:53
Reason #5 for branching: Open source
1:15
Creating a Rock-Paper-Scissors app
4:59
Tagging our releases
2:10
v2 of Rock-Paper-Scissors
3:28
Oh no! A bug report on version 1.0
0:55
First: Verify the bug
1:50
Next: Fix the bug
4:52
Continuing on with v2.1
2:46
Feature now in place
8:38
Merging feature into the main branch
4:59
Cleaning up your old branches
1:11
Branching == credit card debit?
1:26
Techniques for paying down merge/branch debt
10:04
Teamwork: Open source and Pull Requests
21:33
Introduction to Pull Requests
1:08
GitFlow branching style
3:19
Forking and cloning an open repository
2:47
Making a change
3:57
Review and accept the PR (pull request)
7:44
Hurray, your PR was accepted!
2:38
Tips and fixing mistakes
32:06
Tips and tricks introduction
0:43
Tip: Sync your forks
2:25
Tip: Oh my zsh
4:29
Tip: Oh my posh
1:58
Tip: pls
3:41
Tip: Nerd fonts
1:15
Tip: Global Config Settings
3:22
Tip: Customize your GitHub repository's features
4:28
Tip: GitHub Profile Bling
2:14
Tip: GitHub Repository Bling
1:25
Fixes: Lost .git folder?
2:09
Fixes: Reset. Reset all of it!
3:57
Course conclusion
9:50
You're Finished!
0:27
The tools we used
2:25
git != GitHub
0:34
Distributed source control
1:08
The '6' git concepts
1:16
Reasons for branching
2:30
Open source with git
1:09
Goodbye and thanks
0:21
Buy for $49 + tax Bundle and save 85% Team Gift

Questions? Send us an email: contact@talkpython.fm

Talk Python's Mastodon Michael Kennedy's Mastodon