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

Git Complete

Recent Course Updates

  • Added Updates and Errata section
  • Added Tagging section

Course Outline

Read more

Git Complete

Recent Course Updates

  • Added Updates and Errata section
  • Added Tagging section

Course Outline

Course Introduction and Overview provides an introduction to this course and the Git source control system and sets the stage for the rest of the course.

Quick Start a very quick (15 minutes), hands-on introduction to Git. We start off by signing up for GitHub, creating a repository there, the makiing a local copy (clone), local changes (add/commit) and then update GitHub with our changes (push).

We also cover how to exclude the wrong files from accidentally being committed and how to review your repository's history.

We start off with the simple "happy path" and learn about "Fast-Forward" merges and how to control them. The we walk through common "automatic" merges. Finally, we cause trouble on purpose so we can step through resolving conflicting merges with our visual merge tool.

With a strong foundation in branching and merging, we will then cover a more complex topic, Rebasing. In that section, we cover several rebasing examples, including how to resolve a rebase conflict.

In the Stashing section, we save our work-in-progress while we attend to more pressing issues, then pick up where we left off after that.

NEW: In the Tagging section, we mark important milestones or releases within our project. We also use those tags later for comparing differences between important milestones. We also look at how to use tags within GitHub.

All tools have installation and configuration sections to ensure no one is left behind.

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. There is nearly 4 hours of screencast based video training in order to step through each command or action in sufficient detail.

Moving Forward

This course will expand periodically to include more topics, supporting materials and bonus content. Some content may be in direct response to student feedback or discussions so get engaged with the course discussions feature.

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 and compare between branches and commits
  • Manage files with git (move, rename, delete) and update files managed outside git
  • Create and fork repositories on github and push changes back after working after working on them locally
  • Create branches and resolve merge conflicts like a pro

Syllabus

Understand the scope and goals of this course as well as basic understand of key concepts for source control and Git.

Course introduction, welcome and course goals.

Read more

In order to meet the course goals outlined in the previous lecture, this course will follow an outline featured in the lecture.

A brief introduction and information about the author/instructor for this course.

This course has a specific audience in mind -- mainly freelancers, developers, programmers, and other creative professionals.

The majority of the course will be done using the command line (Git Bash / Terminal). This lecture explains why.

Not everyone is convinced of the need for version control -- so I go over the main reasons one should use it.

Once convinced of the need for version control, this lecture goes into Git's unique qualities and why Git is an excellent version control system.

At this point, we assume you plan to use Git for version control and continue with the course, so this lecture goes over some key terminology that will be helpful to understand before moving forward.

Install and configure Git on Windows and/or the Mac platform.

Git Installation section overview and what approach will be taken.

A step-by-step installation of Git on Windows, including recommended options and choices.

A step-by-step installation of Git on the Mac platform (featuring Yosemite).

Become familiar with the a few of the basic commands and the overall local to remote workflow in Git.

Part one of the "Quick Start" section -- starting with GitHub and initial project setup.

Part two of the "Quick Start" section -- configuration, cloning from GitHub and the entire Git workflow (add, commit, push and pull).

Command listings for this section.

Updates regarding GitHub service

GitHub has recently made the new default branch name to be called "main" instead of "master" - which might cause some issues within the course. This lecture covers why and how to work around this issue.

Install and configure a text editor to work with Git for Windows and/or the Mac platform.
Text Editor Installation Overview
Windows Text Editor: Notepad++ Installation
Configure Notepad++ with Git (Windows Only)
Mac Text Editor: TextMate 2 Installation
Configure Text Mate 2 with Git (Mac Only)
Text Editor Resources
Understand by example how Git works and develop a strong understanding of the basic commands used with Git.
Basic Commands Overview
Starting with a Fresh Project (git init)
Adding Git to an Existing Project (git init)
Starting on GitHub by Joining an Existing Project (git clone)
Basic Git Workflow (add, commit, pull & push)
Tracked Files
Editing Files
Recursive Add
Backing Out Changes
Renaming and Moving Files
Deleting Files
History
Git Alias
Ignoring Unwanted Files and Folders
Cleanup and Back to Origin (GitHub)
Git Basics Resources
Install the visual compare (diff) and merge tool (P4Merge) used in this course on their system (Windows or Mac).
Visual Merge / Diff Tool Installation Overview
P4Merge Install on Windows
P4Merge Configure on Windows
P4Merge for Windows Git Configuration
P4Merge for Mac Installation
P4Merge for Mac Git Configuration
Visual Merge / Diff Tool Resources
Compare differences between the local states in Git, different commits, and several other scenarios.
Git Repository Setup (for comparing examples)
Comparing Working Directory and the Staging Area
Comparing Working Directory and Git Repository (Last Commit)
Comparing between the Staging Area and the Git Repository (Last Commit)
Limiting Comparsons to one File (or path)
Comparing Between Commits
Comparing Between Local and Remote Master Branches
Comparison Section Cleanup and Push back to GitHub
Understand the core concepts for Branching and Merging in Git. Branch and Merge with confidence and resolve any conflicts that may arise.
Branching Basics
Happy Path / Fast Forward Merges
Happy Path / Disable Fast Forward Merges
Automatic Merges
Conflicting Merges and Resolution
Section Cleanup and Push back to GitHub
Understand what rebasing is in Git. Execute rebase commands with confidence and resolve any rebase conflicts that may arise.
Simple Rebase Example
Setup for rebasing conflict
Abort a Rebase
Rebase Conflict and Resolution
Pull with Rebase (GitHub)
Section Cleanup and push to GitHub
Understand the benefits of stashing in Git, how they work, and how to perform them in different scenarios.
Simple Stash Example
Stashing Untracked Files and Using Pop
Managing Multiple Stashes
Stashing into a Branch
Stashing Section Resources
Understand the benefits of tagging in Git and how to perform tagging in various scenarios.
Simple Tag Example / Lightweight Tags
Annotated Tags
Comparing Tags
Tagging a Specific Commit
Updating Tags
Using Tags with GitHub
Tagging Section Resources
Collection of sessions from various office hours on Git related topics
Reset and Reflog (Office Hours, Session 1)
Compare Branches via GitHub (Office Hours, Session 1)
Compare Branches via Command Line (Office Hours, Session 1)
Stash vs Branch (Office Hours, Session 1)
Gitting Help (Office Hours, Session 1)
Cherry Pick (Office Hours, Session 1)
Various updates, notes and errata is published here.
Git Mac OS X Updates
Bonus resources and special offers.
Bonus: Exclusive Student Discounts

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops critical skills for freelance developers, such as understanding of version control and proficiency with Git, which are essential for today's work environment
Covers important concepts of Git, including branching, merging, rebasing and stashing, providing a comprehensive understanding of Git's workflow
Taught by experienced instructors in the field, Jason Taylor and John Myers, who bring their expertise and practical knowledge to the course
Provides interactive and hands-on screencasts, along with code examples, to illustrate the concepts and commands, making the learning process more engaging and effective
Emphasizes real-world applications and examples, ensuring that learners can apply the knowledge and skills they gain to their own projects

Save this course

Save Git Complete: The definitive, step-by-step guide to Git to your list so you can find it easily later:
Save

Reviews summary

In-depth and beginner-friendly git guide

Learners say that Git Complete is an in-depth and beginner-friendly step-by-step guide to Git. reviewers say that there is too much depth and clearance in every step that even beginners can understand.

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Git Complete: The definitive, step-by-step guide to Git with these activities:
Review previous coding experience with version control
Recall your existing knowledge of version control from previous coding experience to strengthen your foundation for this course.
Browse courses on Version Control
Show steps
  • Reflect on your previous projects that involved version control.
  • Recall the basic concepts and commands you used.
  • Consider any challenges or best practices you encountered.
Read Git documentation
Read the official Git documentation to build a foundation for understanding the core concepts and commands used in the course.
Browse courses on Git
Show steps
  • Visit the official Git website and navigate to the documentation section.
  • Start with the introductory guide or the user manual.
  • Read through the sections on basic commands, workflow, and concepts.
  • Take notes or highlight important information for future reference.
Read 'Git Pocket Guide' by Richard E. Silverman
Supplement your learning with a concise and practical guide that provides a quick reference for Git commands and concepts.
Show steps
  • Purchase or borrow the book.
  • Read through the book, focusing on key concepts and commands.
  • Use the book as a reference during your Git practice.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Practice Git commands on a local repository
Create a local Git repository and practice executing basic Git commands to reinforce your understanding of the workflow.
Browse courses on Git
Show steps
  • Create a new directory for your local repository.
  • Initialize the repository using 'git init'.
  • Add some files to the repository.
  • Stage the changes using 'git add'.
  • Commit the changes with a meaningful message using 'git commit'.
Join a Git study group or online forum
Engage with other learners by joining a study group or online forum dedicated to Git, allowing you to share knowledge, troubleshoot, and expand your understanding.
Browse courses on Git
Show steps
  • Join a group or forum that aligns with your learning goals.
  • Search for Git study groups or forums online or on social media.
  • Participate in discussions, ask questions, and share your knowledge.
Watch tutorials on branching and merging in Git
Enhance your understanding of branching and merging by watching video tutorials that demonstrate these concepts in action.
Browse courses on Git
Show steps
  • Search for tutorials on Git branching and merging on platforms like YouTube or Udemy.
  • Choose a tutorial that provides clear explanations and demonstrations.
  • Watch the tutorial and take notes or bookmarks.
Create a Git-managed project for personal work
Apply your Git knowledge to a personal project, reinforcing your skills while creating something meaningful.
Browse courses on Git
Show steps
  • Choose a project idea that interests you and would benefit from version control.
  • Create a new Git repository for your project.
  • Track your changes regularly using Git commands.
  • Experiment with branching and merging to organize your work.
  • Share your project with others or contribute to open-source repositories using Git.
Contribute to open-source Git projects
Deepen your understanding of Git and contribute to the community by participating in open-source projects that use Git.
Browse courses on Git
Show steps
  • Identify open-source projects that use Git and align with your interests.
  • Read the project documentation and understand their contribution guidelines.
  • Propose or find a task that you can work on.
  • Create a pull request with your changes and collaborate with the project maintainers.

Career center

Learners who complete Git Complete: The definitive, step-by-step guide to Git will develop knowledge and skills that may be useful to these careers:
Software Engineer
As a Software Engineer, you will design, develop, and maintain software applications. A strong understanding of Git, version control, and workflow can help you excel in this role, enabling you to effectively collaborate on code and manage changes to software projects. This course provides a comprehensive foundation in Git, covering essential commands, branching, merging, and conflict resolution, giving you the skills to navigate software development processes smoothly.
Software Developer
As a Software Developer, you will be responsible for designing, building, and testing software applications. A deep understanding of Git, version control, and workflow can significantly enhance your productivity and collaboration capabilities in this role. This course will provide you with hands-on experience and practical knowledge of Git, enabling you to effectively manage code changes, resolve conflicts, and maintain software projects.
Computer Programmer
As a Computer Programmer, you will translate designs and specifications into functional code. Strong proficiency in Git and version control is essential for collaboration and managing code changes. This course provides a thorough understanding of Git concepts, branching, merging, and conflict resolution, giving you the necessary skills to navigate code development and maintenance tasks.
DevOps Engineer
As a DevOps Engineer, you will bridge the gap between software development and IT operations. A deep understanding of Git, version control, and workflow is crucial for effectively managing code changes, deploying software, and ensuring smooth software delivery. This course offers a comprehensive overview of Git, providing you with the practical skills and knowledge to excel in this role.
Backend Developer
As a Backend Developer, you will focus on the server-side of web applications, handling data management, business logic, and API development. A solid understanding of Git and version control is vital for managing code changes, collaborating on backend systems, and ensuring code stability. This course offers practical training in Git, providing you with the necessary skills to thrive in backend development.
Data Engineer
As a Data Engineer, you will be responsible for designing, building, and maintaining data pipelines and data infrastructure. A deep understanding of Git and version control is essential for managing code changes, collaborating on data projects, and ensuring data integrity. This course provides a comprehensive overview of Git, empowering you with the skills to effectively navigate data engineering workflows.
Web Developer
As a Web Developer, you will design, develop, and maintain websites and web applications. Proficiency in Git and version control is essential for managing code changes, collaborating with team members, and deploying websites. This course provides a hands-on approach to Git, enabling you to effectively navigate web development workflows and ensure code quality.
Machine Learning Engineer
As a Machine Learning Engineer, you will design, develop, and deploy machine learning models. Proficiency in Git and version control is crucial for managing code changes, collaborating on ML projects, and ensuring model reproducibility. This course offers a hands-on approach to Git, enabling you to effectively navigate ML development workflows and ensure code quality.
Cloud Engineer
As a Cloud Engineer, you will design, build, and manage cloud infrastructure and services. A deep understanding of Git and version control is essential for managing code changes, collaborating on cloud projects, and ensuring infrastructure stability. This course provides a comprehensive overview of Git, providing you with the practical skills and knowledge to excel in cloud engineering.
Quality Assurance Engineer
As a Quality Assurance Engineer, you will be responsible for testing software products to ensure their quality and reliability. Proficiency in Git and version control is essential for managing test scripts, collaborating with development teams, and tracking code changes. This course will provide you with hands-on experience in Git, enabling you to effectively navigate testing workflows and ensure software quality.
DBA - Database Administrator
As a DBA - Database Administrator, you will be responsible for managing and maintaining databases. A solid understanding of Git and version control is valuable for managing database changes, collaborating with development teams, and ensuring data integrity. This course offers a comprehensive overview of Git, providing you with the practical skills and knowledge to excel in database administration tasks.
Project Manager
As a Project Manager, you will oversee software development projects, manage teams, and ensure project success. While not directly technical, understanding Git and version control can be beneficial for coordinating code changes, tracking project progress, and communicating with technical team members. This course may provide you with valuable insights into Git, enabling you to effectively navigate software development projects.
Product Manager
As a Product Manager, you will be responsible for defining product vision, managing roadmaps, and working closely with development teams. While not directly technical, understanding Git and version control can be advantageous for understanding technical aspects of product development, collaborating with engineers, and tracking code changes. This course may provide you with helpful insights into Git, supporting you in your role as a Product Manager.
Scrum Master
As a Scrum Master, you will facilitate Agile software development teams and ensure project success. While not directly technical, understanding Git and version control can be beneficial for managing team collaboration, tracking code changes, and monitoring project progress. This course may provide you with valuable insights into Git, supporting you in your role as a Scrum Master.
Technical Writer
As a Technical Writer, you will create documentation and user manuals for software products. Understanding Git and version control can be advantageous for tracking changes to software documentation, coordinating with development teams, and ensuring accuracy in technical documentation. This course may provide you with useful insights into Git, supporting you in your role as a Technical Writer.

Reading list

We've selected seven 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 Complete: The definitive, step-by-step guide to Git.
Comprehensive guide to using Git for Linux. It covers all the essential concepts and commands, and it also includes advanced topics such as branching and merging. This book great resource for experienced Git users who want to learn more about the tool.
Comprehensive guide to using Git for computer scientists. It covers all the essential concepts and commands, and it also includes advanced topics such as branching and merging. This book great resource for computer scientists who want to learn more about Git.
Practical guide to using Git for version control. It covers all the essential concepts and commands, and it's written in a clear and concise style. It provides a comprehensive overview of Git.
Concise and easy-to-use guide to Git. It covers all the essential commands and concepts, and it's perfect for beginners who want to get started with Git quickly. This book acts as a reference guide, making it very useful to use as a quick reference when using Git.
Simple and easy-to-follow guide to using Git. It covers all the essential commands and concepts, and it's perfect for beginners who want to get started with Git quickly. This book great overview of Git.
Quick and easy-to-follow guide to using Git. It covers all the essential concepts and commands, and it's perfect for beginners who want to get started with Git quickly. This book great overview of Git.

Share

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

Similar courses

Here are nine courses similar to Git Complete: The definitive, step-by-step guide to Git.
Git for Windows: Step-By-Step Mastery using Commands and...
Most relevant
Git Going with Comparing, Branching and Merging
Most relevant
GitHub Ultimate: Master Git and GitHub - Beginner to...
Most relevant
Maven Crash Course: Step-by-Step Introduction for...
Most relevant
Git & GitHub Complete Masterclass : Beginner to Git Expert
Most relevant
Learn Git by Doing: A step-by-step guide to version...
Most relevant
Git Training: Step-by-Step Guide to Git Version Control
Most relevant
The Git & Github Bootcamp
Most relevant
Git Mastery: Beginner to Expert with GitHub & GitLab
Most relevant
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 - 2024 OpenCourser