• Professional Development
  • Medicine & Nursing
  • Arts & Crafts
  • Health & Wellbeing
  • Personal Development

Course Images

Complete Git Guide: Understand and Master Git and GitHub

Complete Git Guide: Understand and Master Git and GitHub

  • 30 Day Money Back Guarantee
  • Completion Certificate
  • 24/7 Technical Support

Highlights

  • On-Demand course

  • 21 hours 51 minutes

  • All levels

Description

GitHub is a Git repository hosting service, but it adds many of its own features. While Git is a command line tool, GitHub provides a Web-based graphical interface. It also provides access control and several collaboration features, such as a wikis and basic task management tools for every project.

Complete with practical activities, this comprehensive Git and GitHub guide will help you understand how Git works. You'll learn how to use Git features efficiently and fix issues in your development workflow.
Starting with the internal structure of a Git repository, this course will take you through the four types of Git objects: blobs, trees, commits, and annotated tags. You'll understand how each object has a unique SHA-1 hash and how all objects are stored in folders, files are stored in blobs, and filenames are stored in other Git objects called trees. You'll even get to grips with creating new Git objects without using git commit and git add. Once you've created Git objects in the Git repository, you will add it to the staging area and working directory. By the end of this course, you'll have become a Git and GitHub expert and be able to perform basic and advanced Git tasks seamlessly.

What You Will Learn

Use Git in terminals as well as GUIs such as GitHub Desktop and Visual Studio Code
Explore different Git objects, including blobs, trees, and annotated tags
Create local and remote Git repositories
Get to grips with rebasing and merging branches
Discover what a pull request is and how to create it in GitHub
Learn advanced Git operations such as squashing, amending, and reverting commits
Contribute to public repositories using the forking technique

Audience

Whether you're a complete beginner or a developer with years of experience using Git, this course will add to your Git and GitHub knowledge and help enhance your skills.

Approach

Clear step-by-step explanations starting from the basics of Git. You will perform a lot of practice activities in the local and remote Git repositories and refer to diagrams for illustration of the key points.

Key Features

Understand how Git and GitHub work under the hood * Get to grips with performing basic and advanced Git operations * Learn how to manage repositories with GitHub, SourceTree, and Visual Studio Code

About the Author
Bogdan Stashchuk

Bogdan Stashchuk has over 20 years of experience as a software engineering instructor. He excels at breaking down complex topics into easy-to-follow steps. His courses are designed with hands-on exercises, ensuring that learners can actively participate and apply what they learn. From start to finish, students can follow along and complete tasks just as Bogdan demonstrates in his lectures. He also includes challenging assignments with detailed solutions. This approach helps learners understand and remember the material long after they've completed the course. Through his dedication and expertise, Bogdan ensures a valuable and effective learning experience for everyone.

Course Outline

1. Introduction to Git and GitHub

1. Introduction

This video provides an introduction to Git and GitHub.

2. Section 1 Introduction

This video provides an introduction to this section.

3. Git Versus GitHub

This video illustrates the difference between Git and GitHub.

2. Installation of Git and Configuration of the Shell

1. Section 2 Introduction

This video provides an introduction to this section.

2. Installing Git on MacOS

This video demonstrates how to install Git on MacOS.

3. Installing Git on Windows

This video demonstrates how to install Git on Windows.

4. Installing Git on Linux

This video demonstrates how to install Git on Linux.

5. Installing iTerm2 on MacOS

This video explains how to install iTerm2 on MacOS.

6. Installing Custom Z-Shell on MacOS

This video demonstrates how to install custom Z-shell on MacOS.

3. Basic Shell Commands

1. Section 3 Introduction

This video provides an introduction to the basic shell commands.

2. Shell Commands - Directory Management

This video focuses on shell commands with respect to directory management.

3. Shell Commands - File Management - Part 1

This video is the first part of the two-part video that focuses on shell commands with respect to file management.

4. Shell Commands - File Management - Part 2

This video is the second part of the two-part video that explains some more shell commands with respect to file management.

4. How Git Works Under the Hood

1. Section 4 Introduction

This video provides an introduction to this section.

2. Initializing a New Git Repository

This video explains the initialization of a new Git repository.

3. Overview of the .git Folder

This video provides an overview of the .git folder.

4. Git Object Types

This video explains the various Git object types.

5. Writing a New Git Object with a git hash-object

This video illustrates how to write a new Git object with a git hash-object.

6. JSON Versus Git Database

This video illustrates the difference between JSON and the Git database.

7. What is the Hash Function?

This video explains the hash function.

8. Hash Function Overview

This video provides an overview of the hash function.

9. SHA-1 Hash Function

This video explains the SHA-1 hash function.

10. How Many Files can Git Store?

This video illustrates the number of files Git can store.

11. Probability Theory in a Dice Game

This video explains the probability theory in a dice game.

12. Git Hash Collision Probability

This video explains the Git hash collision probability.

13. More details on hash collision probability (OPTIONAL)

This video gives a more detailed view on hash collision probability.

14. Exploring Git Objects with the git cat-file Command

This video explores some Git objects with the git cat-file command.

15. Creating a New Git Blob Based on a File

This video explains how to create a new Git blob based on a file.

16. Why Git Blobs do not Store File Names

This video explains why the Git blobs do not store a file name.

17. Contents of Git Objects

This video explains the various contents of Git objects.

18. What Have We Learned so Far?

This video provides an overview of the contents we have learned so far in this section.

19. Tree Objects in Git

This video explains the tree objects in Git.

20. Git Object Permissions

This video explains the Git object permissions.

21. Creating a Git Tree Object

This video explains how to create a Git tree object.

22. (Free Preview): Examining Tree Object

This video demonstrates how to examine a tree object in Git.

23. Working Directory, Staging Area, and Git Repository

This video focuses on the working directory, staging area, and Git repository.

24. Overview of Current File Distribution

This video provides an overview of the current file distribution.

25. Git Read-tree

This video sheds light on the Git read-tree.

26. Reading Files in the Staging Area Using git ls-files

This video explains how to read files in the staging area using git ls-files.

27. Git Checkout-index

This video explains the Git checkout-index.

28. Number of Folders Created for Objects

This video explains the number of folders that can be created for objects.

29. Section Summary

This video provides a summary of this section.

5. Basic Git Operations

1. Section 5 Introduction

This video provides an introduction to this section.

2. What is Commit?

This video explains the concept of commit.

3. Configuring the Git Author Name and Email

This video demonstrates how to configure the Git author name and email.

4. Creating Your First Commit

This video demonstrates how to create your first commit.

5. Exploring a Commit Object

This video explains the Git commit object.

6. Project's Current State Overview

This video provides an overview of the project's current state.

7. Basic Git Commands

This video explains the basic Git commands.

8. Adding a New File to the Working Directory

This video demonstrates how to add a new file to the working directory.

9. Git Files Lifecycle

This video explains the Git files lifecycle.

10. Stage File

This video explains the concept of a stage file.

11. Unstage File using git rm

This video explains the concept of an unstage file using git rm.

12. Committing Changes

This video explains how to commit changes in Git.

13. Exploring Changes in a Git Repository

This video explains the changes in a Git repository.

14. Current Diagram of a Git Repository

This video illustrates the current diagram of a Git repository.

6. Git Branches and HEAD

1. Section 6 Introduction

This video provides an introduction to this section.

2. Most Common Git Operations

This video explains the most common Git operations.

3. Project's Current State Overview

This video provides an overview of the project's current state.

4. Installing GitHub Desktop

This video demonstrates how to install GitHub Desktop.

5. GitHub Desktop Overview

This video provides an overview of GitHub Desktop.

6. What is Branch in Git?

This video explains the concept of branch in Git.

7. What is HEAD in Git?

This video explains the concept of HEAD in Git.

8. Third Commit

This video explains the concept of third commit in Git.

9. Git Repository Changes after a Third Commit

This video illustrates the Git repository changes after a third commit.

10. Checking Out a Specific Commit

This video explains how to check out a specific commit in Git.

11. Why Do We Need Branches?

This video explains the purpose of branches in Git.

12. Git Branches Management

This video sheds light on Git branches management.

13. Creating a New Branch

This video demonstrates how to create a new branch in Git.

14. Committing Changes in the New Branch

This video explains how to commit changes in the new branch in Git.

15. Exploring Commit in the New Branch

This video explains how to commit in the new branch in Git.

16. Why Git Reuses Blobs with the Same Contents?

This video explains why Git reuses blobs with the same contents.

7. Cloning, Exploring, and Modifying Public Repositories

1. Section 7 Introduction

This video provides an introduction to the section.

2. Cloning Remote Repository

This video explains the concept of cloning remote repository in Git.

3. Exploring the Contents of the Cloned Repository

This video explores the contents of the cloned repository.

4. Unpacking Git Objects

This video explains the unpacking of Git objects.

5. Exploring Cloned Repository in GitHub Desktop

This video explores cloned repository in GitHub Desktop.

6. Installing the Text Editor Visual Studio Code

This video demonstrates how to install the text editor 'Visual Studio Code'.

7. Exploring Visual Studio Code

This video explores Visual Studio Code.

8. Committing Changes in the Cloned Repository

This video explains how to commit changes in the cloned repository.

9. Git diff Command

This video explains the Git diff command.

10. Overview of the Changes

This video provides an overview of the changes made in this section.

8. Merging Branches

1. Section 8 Introduction

This video provides an introduction to this section.

2. Why Branch Merging is Needed

This video explains the purpose of branch merging in Git.

3. Fast-Forward Merge

This video explains the concept of fast-forward merge in Git.

4. Merging process

This video explains the Git merging process.

5. Fast-Forward Merge in Action

This video demonstrates the process of fast-forward merge.

6. Three-Way Merge

This video explains the three-way merge in Git.

7. Performing a Three-Way Merge

This video demonstrates how to perform a three-way merge.

8. Observing a Git Repository after a Three-Way Merge

This video focuses on the Git repository after a three-way merge.

9. Installing SourceTree

This video demonstrates how to install a SourceTree.

10. SourceTree in Action

This video explains the working of the SourceTree.

11. What is Merge Conflict?

This video explains the concept of merge conflict in Git.

12. Creating Merge Conflict

This video explains the process of creating a merge conflict in Git.

13. Observing Conflicts in the Staging Area and Working Directory

This video sheds lights on the conflicts in the staging area and working directory.

14. Resolving a Merge Conflict in Terminal

This video explains the process of resolving a merge conflict in Terminal.

15. Resolving Conflicts in Visual Studio Code

This video explains how to resolve conflicts in Visual Studio Code.

9. GitHub and Remote Repositories

1. Section 9 Introduction

This video provides an introduction to this section.

2. What is a Git Hosting Service?

This video explains the concept of a Git hosting service.

3. Creating a GitHub Account

This video demonstrates the process of creating a GitHub account.

4. Exploring the First Repository in GitHub

This video explores the first repository in GitHub.

5. Creating Another Commit in GitHub

This video demonstrates the process of creating another commit in GitHub.

6. Creating a New Branch in GitHub

This video demonstrates the process of creating a new branch in GitHub.

7. Making Changes in the New Branch

This video explains how to make changes in the new branch in GitHub.

8. Cloning a Remote Repository

This video focuses on cloning a remote repository in GitHub.

9. What is Remote Repository?

This video explains the concept of remote repository in GitHub.

10. How Remote Repository Empowers Collaboration?

This video explains how remote repository empowers collaboration in GitHub.

10. Git Push, Fetch, and Pull

1. Section 10 Introduction

This video provides an introduction to this section.

2. Overview of the Push, Fetch, and Pull Git Commands

This video provides an overview of the push, fetch, and pull Git commands.

3. What is Origin?

This video explains the concept of origin.

4. Listing Remote and Local Branches

This video explains how to list remote and local branches.

5. What is Tracking Branch?

This video explains the concept of tracking branch in Git.

6. Checking Out a Remote Branch

This video explains how to check out a remote branch in Git.

7. Git Remote Show Origin

This video explains the concept of Git remote show origin.

8. Git Fetch in Action

This video explains the process of Git fetch.

9. Git Pull Two-Step Process

This video explains the two-step process of Git pull.

10. How to Perform Git Pull

This video demonstrates how to perform Git pull.

11. What is FETCH_HEAD?

This video explains the concept of FETCH_HEAD in Git.

12. Git Pull with Fast-Forward Merge

This video explains the process of Git pull with fast-forward merge.

13. Fetching Remote Changes Manually

This video demonstrates how to fetch remote changes manually in Git.

14. Merging FETCH_HEAD Manually

This video explains the process of merging FETCH_HEAD manually.

15. Resolving Conflicts Using Git Pull

This video demonstrates the process of resolving conflicts using the Git pull command.

16. Pushing to a Remote Repository

This video explains how to push to a remote repository in Git.

17. Committing Under Another Author

This video explains how to commit under another author in Git.

18. How do Remote and Local Branches Sync?

This video explains how to sync remote and local branches in Git.

19. Creating a Remote Branch Based on a Local Branch

This video explains the process of creating a remote branch based on a local branch in Git.

20. Updating the Tracking Status of the Branches

This video demonstrates how to update the tracking status of the branches.

21. Removing a Remote Branch Using a Local Terminal

This video explains the process of removing a remote branch using a local terminal in Git.

22. Git Show-ref

This video focuses on Git show-ref.

11. Pull Requests

1. Section 11 Introduction

This video provides an introduction to this section.

2. Collaboration Between Contributors

This video explains the collaboration between contributors.

3. What is a Pull Request?

This video explains the concept of a Git pull request.

4. Why was Pull Request Named Pull Request?

This video explains why pull request was named pull request.

5. Pull Request Versus Merge Request

This video illustrates the difference between pull request and merge request.

6. Pull Request Step-By-step

This video explains the pull request process step-by-step.

7. Creating a New Repository in GitHub

This video explains the process of creating a new repository in GitHub.

8. Changing the Author of the Last Commit

This video explains the process of changing the author of the last commit.

9. Pushing Branch to Remote

This video demonstrates how to push branch to remote.

10. Opening a Pull Request

This video explains the process of opening a pull request.

11. Adding Comments and Approving a Pull Request

This video explains how to add comments and approve a pull request.

12. Creating and Publishing a New Branch Using GitHub Desktop

This video demonstrates the process of creating and publishing a new branch using GitHub Desktop.

13. Signing into GitHub Using GitHub Desktop

This video demonstrates the process of signing into GitHub using GitHub Desktop.

14. Creating and Merging a Pull Request

This video demonstrates the process of creating and merging a pull request.

15. Adding a New Collaborator in GitHub

This video explains the process of adding a new collaborator in GitHub.

16. Exploring Your GitHub Account

This video helps you explore your GitHub account.

17. Opening and Merging a Pull Request Using a Collaborator

This video explains how to open and merge a pull request using a collaborator.

18. Merging without Approvals

This video explains how, by default, merging without approvals is allowed.

19. Configuring a Protected Branch Rule

This video explains how to configure a protected branch rule.

20. Merging after Gaining Required Approval

This video explains the merging process after gaining required approval.

21. Exploring Pull Requests in the Public Repositories

This video explores pull requests in the public repositories.

22. Working with Issues in GitHub

This video explains how to work with issues in GitHub.

12. Forks and Contribution to the Public Repositories

1. Section 12 Introduction

This video provides an introduction to this section.

2. Creating a Fork

This video explains how to create a fork in GitHub.

3. Synching Changes from the Parent Repository

This video explains how to sync changes from the parent repository.

4. Adding a New Upstream Remote Repository

This video explains how to add a new upstream remote repository.

5. Fetching Changes from Upstream

This video demonstrates the process of fetching changes from upstream.

6. Synchronizing Changes from Upstream

This video explains the process of synchronizing changes from upstream.

7. How to Open Pull Request from a Forked Repository

This video explains how to open pull request from a forked repository.

8. Creating a Pull Request from a Forked Repository

This video explains the process for creating a pull request from a forked repository.

9. Removing a Repository Collaborator

This video demonstrates the process of removing a repository collaborator.

10. Forking Repository

This video explains the concept of forking repository in GitHub.

11. Committing Changes in a Forked Repository

This video explains how to commit changes in a forked repository.

12. Opening Pull Request from a Forked Repository

This video explains the process of opening pull request from a forked repository.

13. Approving and Merging a Pull Request from a Forked Repository

This video explains the process of approving and merging a pull request from a forked repository.

13. Git Tags

1. Section 13 Introduction

This video provides an introduction to this section.

2. Git Tags Overview

This video provides an overview of Git tags.

3. Staging Versus Production

This video highlights the difference between staging and production.

4. Semantic Versioning

This video explains the concept of semantic versioning with Git tags.

5. Lightweight Versus Annotated Tags

This video highlights the difference between lightweight and annotated tags.

6. Creating Lightweight Tags

This video explains how to create lightweight tags.

7. Creating Annotated Tags

This video explains how to create annotated tags.

8. Exploring a Git Tag Object

This video explains the process of exploring a Git tag object.

9. Pushing Tags to Remote

This video demonstrates the process of pushing tags to remote.

14. Rebasing

1. Section 14 Introduction

This video provides an introduction to this section.

2. Introduction to Rebasing

This video provides an introduction to rebasing in Git.

3. Merging Versus Rebasing

This video illustrates the difference between merging and rebasing.

4. How to Perform Rebasing

This video explains the process of performing rebasing.

5. Rebasing - Step 1

This video explains the first step of rebasing.

6. Rebasing - Step 2

This video explains the second step of rebasing.

7. Creating a New Repository

This video explains how to create a new repository in Git.

8. Creating a Feature Branch and Making Changes

This video explains how to create a feature branch and make changes.

9. Rebasing a Feature Branch on Top of Master Branch

This video explains how to rebase a feature branch on top of master branch.

10. Completing Rebasing by Performing Merging

This video explains how to complete rebasing by performing merging.

11. Exploring Graphs and Commits in SourceTree

This video helps you explore graphs and commits in SourceTree.

12. Deleting a Feature Branch and Pushing to Remote

This video demonstrates the process of deleting a feature branch and pushing to remote.

15. Ignoring Files in Git

1. Section 15 Introduction

This video provides an introduction to this section.

2. Introduction to Git Ignore

This video provides an introduction to Git ignore.

3. Git File Statuses: Untracked, Tracked, and Ignored

This video explains the various Git file statuses including untracked, tracked, and ignored.

4. Basic Git ignore Rules

This video explains the basic git ignore rules.

5. Pushing Repository with Ignored Files to Remote

This video demonstrates the process of pushing repository with ignored files to remote.

6. Committing Previously Ignored Files

This video explains how to commit previously ignored files.

7. Ignoring Previously Committed Files

This video explains how to ignore previously committed files.

8. Git ignore Common Practices and Templates

This video explains how Git ignore performs common practices and creates templates.

16. Detached HEAD

1. Section 16 Introduction

This video provides an introduction to this section.

2. Detached HEAD State

This video explains the detached HEAD state in Git.

3. Making Experimental Commits in Detached HEAD State

This video demonstrates how to make experimental commits in a detached HEAD state.

4. Retaining Changes Made in the Detached HEAD State

This video demonstrates how to retain the changes made in a detached HEAD state.

17. Advanced Git

1. Section 17 Introduction

This video provides an introduction to this section.

2. Cloning One of the Public Repositories

This video explains how to clone one of the public repositories.

3. Git Log Options: Oneline, Graph, and Stat

This video explains the various Git log options, such as oneline, graph, and stat.

4. Git Shortlog

This video explains the Git shortlog command.

5. Filtering Commits by Author or Keyword

This video demonstrates the process of filtering commits by author or keyword.

6. Pretty Formatting of Git Log

This video explains how to perform pretty format with Git log.

7. Filtering Merge Commits in Git Log

This video demonstrates the process of filtering merge commits in Git log.

8. Git Reset

This video explains the Git reset command.

9. Git Revert

This video explains the Git revert command.

10. Modifying the Last Commit Using the Amend Option

This video demonstrates the process of modifying the last commit using the amend option.

11. Cherry-picking Commits

This video explains the cherry-picking commits in Git.

12. Reflog - Log of All Git Operations

This video explains the concept of reflog - log of all Git operations.

13. Stashing Changes Using Terminal

This video explains how to stash changes using Terminal.

14. Stashing Using GitHub Desktop

This video explains the process of stashing using GitHub Desktop.

15. Garbage Collection

This video focuses on the garbage collection command in Git.

16. Squashing of Commits in GitHub

This video explains the squashing of commits in GitHub.

17. Interactive Rebasing with Squashing in the Local Repository

This video focuses on the interactive rebasing with squashing in the local repository.

18. Git Development Workflow

This video explains the Git development workflow.

18. GitHub Pages

1. Section 18 Introduction

This video provides an introduction to this section.

2. Creating a Simple Website Using GitHub Pages

This video explains how to create a simple website using GitHub Pages.

3. Hosting any Repository Using GitHub Pages

This video explains how to host any repository using GitHub Pages.

4. Creating a Basic React application

This video explains how to create a basic React application.

5. Preparing the React Application for Publishing to the GitHub Pages

This video explains how to prepare the react application to publish it to the GitHub Pages.

6. Fixing Errors with Cached Credentials Using SSH Instead of HTTPS

This video demonstrates the process of fixing errors with cached credentials using SSH instead of HTTPS.

7. Verifying a React GitHub Page

This video explains how to verify a React GitHub Page.

8. Configuring a Custom Domain for GitHub Pages

This video explains how to configure a custom domain for GitHub Pages.

9. Creating a Static GitHub Page Using Markdown

This video explains how to create a static GitHub Page using markdown.

19. GitHub Hooks

1. Section 19 Introduction

This video provides an introduction to this section.

2. Normal Git Workflow without Hooks

This video explains the normal Git workflow without hooks.

3. What are Git Hooks?

This video explains the concept of Git hooks.

4. How Git Hooks can Be Used in Practice

This video demonstrates how Git hooks can be used in practice.

5. Using a Pre-Commit Hook

This video demonstrates how to use a pre-commit hook in Git.

6. Enabling a Post-Commit Hook

This video demonstrates how to enable a post-commit hook in Git.

7. Disabling Rebasing Using a Pre-Rebase Hook

This video demonstrates how to disable rebasing using a pre-rebase hook in Git.

8. Matching an Author's Email against a Regular Expression

This video demonstrates how to match an author's email against a regular expression.

9. Why Local Git Hooks are not Pushed to the Remote

This video explains why local Git hooks are not pushed to the remote.

10. Cleaning Up the Local Git Hooks Repository

This video demonstrates how to clean up the local Git hooks repository.

11. Initializing a New Node.js Project

This video demonstrates how to initialize a new Node.js project.

12. Installing the Jest NPM Package for Testing

This video demonstrates how to install the Jest NPM package for testing.

13. Adding Multi and Sum Modules with Tests

This video demonstrates how to add multi and sum modules with tests.

14. Using the Pre-Commit NPM Package for Automation of the Pre-commit Hook

This video demonstrates how to use the pre-commit NPM package to automate the pre-commit hook in Git.

15. Cloning a Remote Repository and Verifying a Pre-Commit Hook

This video demonstrates how to clone a remote repository and verify a pre-commit hook in Git.

16. Replacing a Pre-Commit NPM Package with Husky

This video demonstrates how to replace a pre-commit NPM package with Husky.

17. Skipping All Git Hooks Using the -no-verify Option

This video demonstrates how to skip all Git hooks using the -no-verify option.

18. Introduction to Linter and Running Linter in the Pre-Commit Hook

This video introduces you to linter and demonstrates how to run linter in a pre-commit hook.

19. Introducing a Lint-Staged Package to Check only Staged Files

This video demonstrates how to use a lint-staged package to check only staged files.

20. Verifying Selective Linting and Testing Using Lint-staged

This video demonstrates how to verify selective linting and testing using lint-staged.

21. Adding a Post-Commit Hook

This video demonstrates how to add a post-commit hook.

22. Verifying Commit Message Using Commitlint

This video demonstrates how to verify a commit message using the commitlint command.

23. Git Hooks Summary

This video provides a summary of Git hooks.

20. Wrap Up

1. Wrap Up

This video presents a summary of this section.

Course Content

  1. Complete Git Guide: Understand and Master Git and GitHub

About The Provider

Packt
Packt
Birmingham
Founded in 2004 in Birmingham, UK, Packt’s mission is to help the world put software to work in new ways, through the delivery of effective learning and i...
Read more about Packt

Tags

Reviews