We may earn an affiliate commission when you visit our partners.
Course image
Jason Taylor and John Myers

This course is designed to cut academic theory to just the key concepts and focus on basics tasks in Git in order to be productive quickly. Students can expect to learn the all the main features of Git in just two hours.

New. Closed captions throughout the course.

Course Outline

Course Introduction provides a welcome to this course with a few suggestions on how to get the most out of it. After that, we cover the minimum theory before getting our hands dirty with Git in the Core Concepts section.

Read more

This course is designed to cut academic theory to just the key concepts and focus on basics tasks in Git in order to be productive quickly. Students can expect to learn the all the main features of Git in just two hours.

New. Closed captions throughout the course.

Course Outline

Course Introduction provides a welcome to this course with a few suggestions on how to get the most out of it. After that, we cover the minimum theory before getting our hands dirty with Git in the Core Concepts section.

Quick Installation provides an overview on the installation process for all tools needed for this course. A more detailed set of instructions are available in the Bonus section.

In The Basics, we walk through all the commands needed to start a new project managed by Git (or enable Git for an existing project) all the way through making commits, including common file operations like moving and deleting files. We also cover how to exclude the wrong files from accidentally being committed and how to review your repository's history.

We then go a bit deeper in the Advanced section when we cover comparing changes, branching and merging (including merge conflict resolution), tagging milestones, saving temporary work, and even a bit of time travel.

Finally, Going Remote covers publishing the locally created repository (previous sections) on GitHub and BitBucket. We cover the main concepts related to working with any remote Git repositories and compare the differences between the two most popular Git hosting services.

After the main part of the course, this course offers several bonus sections that explore some topics in more detail for those that like more information.

Course Features

Presentations provide audio/video training of conceptual ideas. Since few like slide-ware presentations, slide-presentations are kept to a minimum.

Screencasts provide a video of the instructor's computer system with any actions, commands, or screens displayed and narrated. Excluding bonus lectures, this course offers about 2 hours of screencast videos.

Several attachments throughout the course provide supplemental information, illustrations, or other reference material.

Enroll now

What's inside

Learning objectives

  • Learn the key concepts of the git source control system
  • Step through the entire git workflow
  • Compare the different states in git
  • Manage files inside and outside the control of git
  • Create and manage repositories on github and bitbucket
  • Create branches and resolve conflicts with confidence
  • Save work in progress with stashes
  • Mark special events with tags
  • Even a bit of time travel within git repositories

Syllabus

A quick explanation of the reasoning for using the command line to start using Git, including new features hitting the command line first, online help being targeted at folks on the command line, the command line having more power, and the cross-platform nature of the bash terminal.

Read more

An overview of the topics that will be covered in this course, including Git basics, advanced Git, and going remote with GitHub and Bit Bucket.

A quick guide to the general approach for this curse, including step by step demos that are short and focused using the command line. As well, it is recommended to follow along with all of the examples to maximize your learning.

An overview of the foundational aspects that will be covered in this section on the basic concepts in Git. This can be skipped if you already know what Git is and does.

A quick overview of what Git is, a decentralized or distributed version control system that works off of local operations to allow it to be quick and large in scale. Git is considered de-facto for version control, making it widely supported.

In Git, the collection of files being managed and all of their version history is considered the repository. Not everything in the folder has to be managed by Git, but the .git folder is what contains all of the versioning files.

Commits are snapshots of an entire repository, showing the changes between it and the previous state of the Git repository's files. These commits follow a timeline of events to get you from one point to the next.

An overview of the way that this section lists out all tools to be installed in concise, slide driven installation guides.

An overview of what we will need to install on Windows for this course, including Git for Windows, Notepad++, and P4Merge.

An overview of what we will need to install on Mac OS for this course, including Git from Apple, TextMate 2, and P4Merge.

An overview of the foundational commands that will be covered in this section, including getting information, creating a basic Git workflow, doing file operations, excluding files, and undoing mistakes.

Creating a new Git repository on our local system using the command line interface with the command "git init".

An overview of the three basic states of a file in Git, including working directory, staging area, and the repository (.git folder). This may also include the fourth stage, remote, which is a separate repository tacked on at the end to mirror the local side's final repository state.

Continuing with our demo repository by adding files and checking out the status of the repository using the "git status" command to build up to our initial commit.

Understanding the inner workings of the Git repository by looking in and seeing what happens when the ".git" folder is removed.

Adding Git source control to an existing folder and files, recreating our Git project that we just started.

Adding new files before our initial commit on our newly created Git repository, using special characters to add multiple files at once.

Using "git log" to show the listing of commits that are part of this repository.

Editing an existing file that is currently managed by Git, in order to show how Git tracks modified files and how Git can add and commit these changes in one command.

Backing out changes by reverting changes from our staging area and then reverting the changes entirely.

Using the Git log command to display an easier to read commit log history, before making an alias that will run that command without having to type the full command out.

Using Git to rename and delete files, which will keep track of the changes between renames and deletes.

Using non-Git based commands to rename and remove files outside of Git in order to show how this messes up the Git history and to then show how to add the link back so Git can properly track the files.

Using the ".gitignore" file to exclude files that we don't want in our Git repository by using expressions to exclude files by extension type.

A description of the more advanced topics that will be covered in this section, including comparing changes, branching, creating milestones, time travel, and more.

Using "git diff" to show differences between two commit points within our Git history.

An explanation of what branches are, including diagrams of the most common types of branch resolutions, including fast forward, no fast forward, automatic merges, and manual merge conflicts.

An explanation of what special markers do, allowing you to access special points on the Git repository, such as HEAD, which is the most recent commit.

Creating and managing branches other than Master in our Git repository, then merging in those changes with the easiest path, a fast forward merge, finally deleting the branch we no longer need.

Creating a conflict between branches and walking through the steps to use our merge tool to resolve the conflict.

Looking at adding tag onto specific commits in Git. This allows us to create tags to associate with commits in our history in order to mark out milestone builds for future reference with a lot more detail.

Saving progress in our current repository by stashing our changes to be able to unpack them inside a different branch, effectively moving the changes so we don't have to destroy them.

Resting to arbitrary commits using "reset" and using "reflog" to display all of those changes, before finally resetting our history to the current commit without losing any history.

Exploring the remote side of Git by looking at the two main hosting services BitBucket and GitHub.

A quick explanation of what remote repositories are, basically a backup copy of your Git repository but on a remote service such as BitBucket or GitHub.

Bit bucket is a remote repository hosting service that can either be cloud hosted or hosted on a local system. The payment model is based on the number of contributors to private repositories.

Signing up for an account with BitBucket that we will use to create our remote copy of our local repository.

Creating our first demo repository in BitBucket using the basic repository creation interface.

Connecting the demo repository we just created on BitBucket to the existing project that we have on our local system.

Pushing the changes on our local repository to the remote BitBucket repository we just linked to the local repository.

Removing the remote BitBucket repository reference that we added to our local Git Repository.

Comparing the differences between GitHub and BitBucket. This comparison is out of date, as GitHub offers a fairly similar model of private repositories to BitBucket.

A quick overview of GitHub, which is currently owned by Microsoft, no longer GitHub itself. As such, GitHub has lost some popularity in hosting open source projects.

Signing into GitHub and creating a simple example repository, which we link to our local repository by pushing up our changes from our local side to the remote GitHub repository.

Using GitHub to create a repository on the remote side before then cloning it down to our local system, in order to ease the process of linking the two together.

GitHub recently changed the default branch name from "master" to "main" - which impacts the rest of this course.

Looking over the differences between fetch and pull, where fetch only looks at the differences and updates the remote references and pulling takes those changes down and tries to integrate them to our local repository.

A quick overview of what has been covered in this course, and how it will help you to be a better developer by using source control.

A quick overview of the background topics that will be covered, including a bio of the instructor, a brief history of Git, and comparing Git to other source control tools available.

A quick bio of Jason Taylor, the instructor for this course, who has had a lot of practical experience using Git on large productions.

A brief history of how Git was created out of necessity to support the Linux kernel project after a license for bit keeper was revoked.

A quick comparison of the advantages and disadvantages between Git and the leading competitors, such as Mercurial and commercial offerings.

A guide to the programs that will be installed in this section, including Git for Windows, Notepad++, and P4Merge.

Installing the versioning software Git for Windows onto our local Windows System.

Tweaking Git for Windows to be more usable throughout the rest of this course.

Getting help on commands we are going to be using in this course by using the "git help" command to detail how to use things.

Setting up the minimal configuration needed by Git to get our Git for Windows setup working.

Installing the text editor Notepad++ onto our local Windows system.

Integrating our text editor Notepad++ with our install of Git for Windows.

Installing the merge tool P4Merge onto our local Windows installation.

Integrating the functionality provided by P4Merge into Git.

A guide to the programs that will be installed in this section, including Git from Apple, TextMate 2, and P4Merge.

Installing the versioning software, Git, on our local system using the command line utility provided by Apple.

Setting up the minimal configuration needed by Git to get our Git setup working.

Installing the text editor TextMate 2 on our local Mac OS system.

Configuring TextMate 2 to be more usable throughout the rest of this course.

Configuring TextMate 2 to integrate closely with our installation of Git.

Installing the merge tool P4Merge onto our local Mac OS X installation.

Updating our terminal prompt to be more usable throughout this section by using a script.

A guide to resolving the issue of Git not working after upgrading to a new version of Mac OS.

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Career center

Learners who complete Git for Geeks: Quick Git Training for Developers will develop knowledge and skills that may be useful to these careers:

Reading list

We've selected 41 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Git for Geeks: Quick Git Training for Developers.
Written by Git's creator, this book provides an in-depth understanding of the underlying concepts and advanced features of Git. It is an essential reference for those seeking a comprehensive guide to the tool.
Focused on writing clean, readable, and maintainable code, this book provides principles and practices essential for any software developer. It is particularly useful for solidifying understanding of good coding standards and is widely recommended across the industry. It serves as an excellent reference for improving code quality.
Offers practical advice on a wide range of software development topics, emphasizing pragmatic approaches to coding, debugging, and problem-solving. It's considered a must-read for developers seeking to improve their craft and is highly relevant for both broadening and deepening understanding. The 20th-anniversary edition keeps its timeless principles relevant for contemporary developers.
Provides a comprehensive guide to Unix programming, including coverage of the command line and its use within the Unix ecosystem, making it a valuable resource for those seeking to develop Unix-based applications.
Comprehensively covers the fundamentals of Git, making it a valuable resource for both beginners and experienced users. Its hands-on approach and clear explanations make it easy to understand the concepts and apply them to practical scenarios.
Provides a catalog of refactoring techniques to improve the design of existing code without changing its external behavior. It's a practical guide essential for maintaining and evolving software systems, highly relevant for solidifying good coding practices and deepening understanding of code improvement.
Seminal work on the principles and practices of continuous integration, continuous delivery, and deployment automation. It is highly relevant for understanding contemporary software development methodologies focused on frequent and reliable releases. It's valuable for deepening understanding and key reference in the field.
Delves into the fundamental principles and challenges of designing data systems that are reliable, scalable, and maintainable. It is highly relevant for contemporary software development, particularly for engineers working with large-scale data, and provides deep technical understanding.
Written by members of Google's SRE team, this book details the practices and principles of Site Reliability Engineering, focusing on building and operating scalable and reliable systems. It's highly relevant for contemporary software development, particularly for those interested in operations, reliability, and large-scale systems. It provides deep insights into industry practices.
Explores the concepts and practices of designing and building microservices architectures. Given the prevalence of microservices in modern software development, this book is highly relevant for understanding contemporary approaches to system design. It's valuable for deepening understanding and serves as a practical guide.
Based on rigorous research, this book provides insights into the practices that drive high performance in technology organizations, focusing on Lean, DevOps, and continuous delivery. It's highly relevant for understanding contemporary trends and deepening knowledge in these areas, particularly for professionals and graduate students.
Serves as an excellent introduction to the Linux command line and covers basic to advanced concepts, making it a suitable resource for beginners and experienced users alike.
This classic book introduces fundamental design patterns for object-oriented software, providing reusable solutions to common design problems. It is crucial for deepening understanding of software design and valuable reference for developers and architects. While not recently published, its content remains foundational.
Introduces Domain-Driven Design (DDD), an approach to software development that emphasizes aligning software design with the business domain. It is highly relevant for designing complex systems and provides a framework for deepening understanding of how to model software effectively based on business requirements.
Provides a practical introduction to Test-Driven Development (TDD) through a series of examples. It's a foundational text for understanding this important agile practice and is highly relevant for improving code quality and developer confidence. It's particularly useful for those looking to adopt TDD in their workflow.
This comprehensive textbook covers a wide range of algorithms and data structures, providing a theoretical foundation essential for understanding efficient code development. It core resource for deepening understanding, particularly for students and professionals focusing on the computational aspects of software development. It is often used as a textbook in university programs.
Provides a thorough exploration of the Bash shell, focusing on its features, scripting capabilities, and customization options, making it a valuable resource for those looking to master Bash.
Provides a comprehensive exploration of operating systems concepts and their implementation, including coverage of the command line and its role within different operating systems, making it suitable for those seeking a deeper understanding of the underlying principles.
Explores the Staff Engineer role and technical leadership paths for individual contributors in software engineering. It addresses a contemporary career topic and provides guidance for experienced professionals looking to grow their impact without moving into management.
Provides practical guidance on using the Linux command line effectively, covering topics such as file manipulation, text processing, and system administration, making it suitable for both beginners and experienced users looking to enhance their skills.
Provides a comprehensive overview of the Perforce Helix version control system. It covers a wide range of topics, including basic concepts, advanced workflows, and best practices. It valuable resource for experienced Perforce Helix users who want to improve their skills.
A collection of essays on the challenges of software project management, this book offers timeless insights into the complexities of developing software systems. It's considered a classic and provides a broad understanding of the non-technical aspects of software development, particularly relevant for those interested in project management and the history of the field.
This widely used textbook provides a solid theoretical foundation for understanding operating systems, which are a fundamental component of software development environments. It is essential for deepening understanding of how software interacts with hardware and is commonly used in undergraduate and graduate programs.
Offers a comprehensive introduction to database systems, covering fundamental concepts, principles, and practices. Given the ubiquitous nature of databases in software applications, this book is highly relevant for gaining a broad understanding and deepening knowledge in this critical area. It is often used as a textbook.
Concise and easy-to-use reference guide to Git. It covers all the essential commands and concepts, and great resource for quick lookups.
Provides a comprehensive overview of the Subversion version control system. It covers a wide range of topics, including basic concepts, advanced workflows, and best practices. It valuable resource for experienced Subversion users who want to improve their skills.
This influential book explores the dynamics and principles of open-source software development, providing valuable insights into the collaborative nature of GitHub.
While this book primarily focuses on continuous delivery practices, it also provides a comprehensive overview of source control management as a key component of the software delivery pipeline. It emphasizes the importance of version control in enabling continuous integration and continuous delivery.
Affectionately known as the "Dragon Book," this classic text on compiler design. While quite technical, it provides deep insights into how programming languages are processed and executed, contributing to a solid understanding of the underlying mechanisms of software. It is primarily for those seeking to deepen their understanding at a more theoretical level.
Provides a concise overview of the essential Git commands and concepts. It is an excellent resource for beginners who want to learn the basics of Git quickly.
This comprehensive guide to software engineering covers various aspects of software development, including version control and collaboration, making it a valuable resource for GitHub users.
Provides a hands-on approach to learning Python, including coverage of using the command line to interact with the Python interpreter and execute Python scripts, making it suitable for beginners seeking to develop their Python skills.
Provides a practical introduction to version control using real-world examples. It is an excellent resource for beginners who want to learn the basics of version control.
Fun and engaging way to learn Git. It provides short and easy lessons that can be completed in a month.
This concise guide offers a comprehensive overview of the core concepts and commands of Git. It covers the basics of version control, branching and merging, and collaboration workflows, making it a suitable resource for beginners seeking a quick introduction to Git.
While primarily focused on Java programming, it also includes coverage of the command line and its use within the Java ecosystem, making it a valuable resource for those seeking to develop Java applications that interact with the command line.
Focuses on advanced Git techniques, including advanced branching strategies, making it suitable for experienced Git users looking to enhance their skills.
This beginner-friendly guide introduces the basics of GitHub, covering essential concepts and workflows for individuals new to the platform.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Git for Geeks: Quick Git Training for Developers.
Introduction to Git and GitHub
Most relevant
Advanced Reproducibility in Cancer Informatics
Most relevant
Git and GitHub for DevOps Engineers
Most relevant
Intro to Git
Most relevant
Version Control in node.js: Update Your App with GitHub
Most relevant
Working with Version Control
Most relevant
Master Git and Github - Beginner to Expert
Most relevant
Git & GitHub - The Practical Guide
Most relevant
The Complete Git Guide: Understand and master Git and...
Most relevant

Udemy Buyer Protection & Guarantee

Verified partner policies & purchase protections

Global Marketplace Leader
Free Trial & Audit

Free Lecture Previews

Free preview video lectures available for all courses; optional 7-day free trial on Personal Plan subscriptions (cancel before trial ends to avoid conversion).

Return & Refund Policy

30-Day Money-Back Guarantee

30-day money-back guarantee on all eligible individual course purchases (provided course content has not been substantially consumed or downloaded). Subscription fees are non-refundable once billed.

Buyer Protections

Verified Academic & Industry Partner

Lifetime access to purchased individual courses and future updates, verifiable certificate of completion, and direct student Q&A forums.

Key Purchase Protections
30-day 100% money-back guarantee on course purchases
Lifetime access on web, mobile, and offline
Certificate of completion included with purchase
Direct instructor Q&A and active student community
OpenCourser Verified Partner Policy details last reviewed: 2026-10-22
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser