Starts May 27

Git for Network Engineers' Course

Discount Ends: May 10th

Student Success

(from earlier courses)

  • I highly recommend both courses (Ansible and Netmiko) for those looking to learn more about network automation. Kirk Byers does a great job at explaining the content, provides the lab resources required to perform the course material, and is good at responding to questions on his Slack Channel.

    Andrew Turner
  • I have taken several paid and non-paid Python courses. I can say that by far your course is the best one I have taken. The way you explained stuff just makes sense to me.

    Joli Martinez
    Automation Engineer
  • I am on the material for the 3rd week and I just wanted to compliment you on the way that you explained how to unwrap the data structures. Best step by step explanation I have seen so far to help me understand and work with the data. Thank you very much!

    Ray deGuzman
    Senior Network Engineer

Course Syllabus

Lesson1: Fundamentals

  • What is Git?
  • Why care about Git?
  • A series of snapshots
  • Distributed
  • Initializing Git
  • What objects does Git track?
  • What is a repository?

Lesson2: File States, Hashes, Commit History

  • File States: tracked vs untracked
  • Two-step commit process
  • What is staging?
  • How does Git uses hashes?
  • First commit
  • Git log and the commit history

Lesson3: Adding and Removing Files

  • Adding multiple files
  • Adding directories
  • Trees in Git (directories)
  • Commits, files, and the working dir
  • Removing files and directories

Lesson4: Branches

  • What is a branch?
  • How does Git track branches
  • What is the HEAD file?
  • Creating branches
  • Branches as pointers
  • Our first merge
  • What is a fast-forward merge?

Lesson5: Merging

  • Deleting a branch
  • What is a three-way merge?
  • How Git handles a three-way merge
  • Performing a three-way merge
  • Rebasing insteading of merging
  • How to rebase a branch

Lesson6: Merge Conflicts

  • What causes merge conflicts?
  • How to create a merge conflict
  • Resolving a merge conflict
  • Merge conflict examples

Lesson7: Remote Repositories

  • Working with remote repositories
  • Adding a remote in Git
  • Remote branches
  • Where is remote information stored?
  • git fetch
  • No repository is better than another

Lesson8: Git Push/Pull and Tracking Branches

  • git pull
  • git pull with a rebase
  • Pushing changes to a remote repository
  • Adding a tracking branch
  • How tracking branches affect behavior
  • What is Git's refspec?

Lesson9: Using GitHub

  • Creating a GitHub account
  • Forking a repository
  • Cloning your forked repository
  • What git clone does automatically
  • What is a packfile?
  • Setting up a personal access token
  • Adding a fork as a remote repository

Lesson10: GitHub Creating Repositories and Pull Requests

  • Creating a repository in GitHub
  • GitHub pull-requests
  • Reviewing and approving pull-requests
  • Updating forked repositories
  • Commit history in GitHub

Lesson11: Tags, Config Options, Stashing Changes

  • Creating and listing tags
  • Pushing tags to a remote repository
  • Customizing Git's config
  • Stashing changes
  • Popping changes from the stash
  • Managing multiple stash entries

Lesson12: Undoing Commits, Git Workflows

  • Undoing a commit (soft)
  • Undoing a commit (hard)
  • Implications of changing the history
  • Force pushing your commit history
  • Git workflows

Bonus1: GitHub Actions (Plus Package Only)

  • An aside on YAML
  • Creating your workflow
  • Defining a job
  • Defining steps
  • Creating a matrix
  • Adding simple tests

*Course content is subject to change. Any changes should be minor, however.


What is the format of the course?

This course is a twelve lesson, four-week email course. The lessons are sent every Monday, Wednesday, and Friday. The lessons contain videos, and potentially exercises and additional content (not all lessons will contain exercises, but most will). We will post solutions to the exercises online. The Plus Package will have a community forum where you can ask questions and interact with me and with the other students.

Is there a lab environment?

Yes, there will be a simple Linux lab environment that you can SSH into. This lab environment will allow you to easily use Git. Alternatively, you can install and configure Git in your local environment.

What are the prerequisites for the course?

Since the lab environment will use Linux, you should be at least somewhat familiar with Linux. You should know the basics of how to move around the file system, execute shell commands, and edit a file. Note, the lab environment is optional and you can also install Git locally on your own computer.

Why Git?

Git is the predominant version control system currently in use. It allows you to manage both automation code and text-based infrastructure files. It also enable the integration of CI/CD into your environment. CI/CD enables systematic and automated testing of changes.

What is the community forum?

The community forum is a forum where students can interact, ask questions, and make recommendations. Students that purchase the Plus Package will have access to the community forum for the duration of the course.

What if I am unsatisfied with the course after I sign-up?

If you are not satisfied with the course, there is a 15-day money back guarantee. No questions asked.

About Us


Kirk Byers is the founder of Twin Bridges Technology–a business specializing in network automation training. He is the creator of the Netmiko Python library and also one of the maintainers of the NAPALM project. He teaches Python, Ansible, and Nornir courses for Network Engineers and writes about network automation. He is a long-time network engineer (CCIE #6243 emeritus), has extensive experience with *nix system administration, and is a Python programmer. He is interested in programming and networking and how to improve network engineering practices through automation.


Zack is a programmer extraordinaire. His language of choice is Python. He loves programming and is very big into games including: Magic the Gathering, Brawl Stars, Scythe, and Terraforming Mars.


Jupiter is all dog. She loves to be near her people and loves her food (not necessarily in that order). She likes the water, the beach, chasing birds, and meeting new people. She is categorized as "an aggressive chew breed" and is living up to that category.

Starts May 27

Python Network Automation Course

Discount Ends: May 10th