Mô tả

This course is all about Git and GitHub.

Understand HOW Git works and learn all Git features from basic commits to squashing and rebasing.

  • Blobs, Trees, Annotated tags, SHA1 hashes

If those terms are new to you - jump in and you will learn all about Git internals and afterwards practice basic and advanced Git features using multiple practice activities.

Become a master of Git, GitHub, GitHub Desktop, SourceTree and Visual Studio Code.


This is the most complete practical Git and GitHub guide here on Udemy that includes tons of practical activities. Most important is that you will learn how Git works and knowing it you will be able much more easier use Git features and fix mistakes in your development workflow. You can have zero knowledge about Git and GitHub. All will be taught from scratch, from basic to advanced features. If you want to get deep knowledge of Git and GitHub this course is for you!


We will start by exploring internal structure of the Git repository. You will learn that Git has 4 types of objects: blobs, trees, commits and annotated tags. Each object has unique SHA1 hash. Also all objects are stored in the folders. Every object has just single reference to it - SHA1 hash. Files are stored in blobs. Filenames are stored in other Git objects called trees.

I will explain you how to create new Git objects without using git commit and git add. After creating Git object in the Git repository you will checkout it to staging area and working directory (opposite direction to traditional Git flow)

Afterwards we will jump into tons of practice activities and use different Git and GitHub features

In practice sections you will perform multiple practice Git activities:

  1. Initialize new Git repository

  2. Make changes, add them to staging area and commit

  3. Create branches, checkout branches and merge branches

  4. Perform fast-forward and 3-way merges of the branches

  5. Resolve merge conflicts

  6. Move into detached HEAD state and make experimental commits there

  7. Perform rebasing of the branches

You will also learn and practice different GitHub features

  1. Connect local and remote repositories

  2. Pushing, fetching and pulling operations

  3. Open Pull Request

  4. Merge Pull Request

  5. Add software versions using Git Tags

  6. Create forks from other repositories

  7. Contribute to public repositories using technique of forks and pull requests

  8. Perform rebasing with squashing

You will use not just terminal and shell commands for performing Git operations. In parallel you will also use GUI applications that simplify routine day-by-day Git operations:

  • GitHub Desktop

  • SourceTree

  • VisualStudio Code

With this course you will get lifetime-long access to almost 200 lectures and tens of practical exercises. After the course you will become a guru of Git and GitHub and will be able easily perform basic and advanced Git tasks.

But most important is that you will UNDERSTAND Git.

You will also get 30-days money-back guarantee. No questions asked!

Don't wait and join the course now!

Bạn sẽ học được gì

Deeply understand how Git works under the hood

Use Git not just in terminal but also in graphical user interfaces like GitHub Desktop, SourceTree, Visual Studio Code

Learn different GIt objects - blobs, trees, commits and annotated tags

Create local and remote Git repositories

Perform basic and advanced Git operations

Learn how to perform rebasing and merging of the branches

Learn what is pull request and how to create pull request at GitHub

Contribute to public repositories using technique of forks and pull requests from the forked repository

Understand what is semantic versioning and how to use Git Tags in order to create software release versions

Learn advanced Git operations - squashing, cherry-picking, amending, reverting commits.

Yêu cầu

  • We will start from the very beginning, from basic Git features and move on to advanced techniques and operations
  • Prepare only your Mac, Windows or Linux/Unix computer. Anything will work.
  • If you are new to Git, please start from the very beginning: learn how Git works and how to perform basic operations (git add, git commit, git branch)
  • If you are advanced Git user I highly recommend you to watch "How Git works under the hood" section and then jump to advanced Git features like squashing, cherry-picking etc.

Nội dung khoá học

21 sections

Introduction to the Git and GitHub

5 lectures
Welcome and Course Overview
05:24
Let's get connected! Join the Learning Community
00:26
Section 1 Introduction
01:28
PDF - Introduction to the Git and GitHub
00:02
Git vs GitHub
05:30

Installation of the Git and configuration of the Shell

6 lectures
Section 2 Introduction
00:42
Installing Git on MacOS
02:24
Installing Git on Windows
10:41
Installing Git on Linux
08:20
Installing iTerm2 on the Mac
05:36
Installing custom shell Z-Shell on the Mac
05:32

Basic Shell commands

5 lectures
Section 3 Introduction
00:43
PDF - Basic Shell Commands
00:02
Shell commands - directory management
09:38
Shell commands - file management - PART 1
08:59
Shell commands - file management - PART 2
08:25

How Git works under the hood

31 lectures
Section 4 Introduction
00:57
PDF - How Git works under the hood
00:02
Initialize new Git repository
04:12
Overview of .git folder
04:01
Git object types
03:02
Writing new Git object with git hash-object
06:45
JSON vs Git database
03:57
What is hash function
03:52
Hash functions overview
03:29
SHA1 Hash Function
10:18
How many files Git could store
04:09
Probability theory in Dice game
04:11
Git hash collision probability
05:56
Next lecture is OPTIONAL
00:27
More details on hash collision probability (OPTIONAL)
27:13
Exploring Git objects with git cat-file command
05:24
Create new Git Blob based on the file
07:56
Git blobs don't store filenames
02:40
Contents of Git objects
10:14
What we have so far
01:56
Tree objects in Git
02:41
Git object permissions
02:25
Creating Git Tree object
09:52
Examining Tree Object
04:52
Working directory, Staging area and Git repository
01:55
Overview of current files distribution
03:50
Git read-tree
03:51
Read files in the staging area using git ls-files
01:58
Git checkout-index
03:11
How many folders could be created for objects
02:20
Section Summary
04:20

Basic Git operations

15 lectures
Section 5 Introduction
00:53
PDF - Basic Git operations
00:02
What is Commit
03:59
Configure Git author name and email
03:50
Creating first commit
04:00
Exploring commit object
05:36
Current project state overview
05:08
Basic Git commands
03:34
Adding new file to working directory
05:43
Git files lifecycle
08:37
Stage file
01:59
Unstage file using git rm
02:57
Commit changes
02:07
Exploring changes in Git repository
07:53
Current diagram of Git repository
06:15

Git branches and HEAD

17 lectures
Section 6 Introduction
01:12
PDF - Git branches and HEAD
00:02
Most common Git operations
06:17
Overview of the current project state
01:23
Installing GitHub Desktop
03:36
GitHub Desktop Overview
04:58
What is branch in Git
06:44
What is HEAD in Git
05:31
Third commit
05:22
Git repository changes after third commit
07:12
Checkout specific commit
13:49
Why do we need branches
10:36
Git branches management
03:04
Create new branch
07:20
Commit changes in the new branch
04:35
Explore commit in the new branch
05:31
Git reuses blobs with the same contents
07:34

Cloning, exploring and modifying public repositories

10 lectures
Section 7 Introduction
00:55
Cloning remote repository
06:01
Exploring contents of the cloned repository
07:52
Unpacking Git objects
04:06
Exploring cloned repository in GitHub Desktop
05:18
Installing text editor Visual Studio Code
02:45
Exploring Visual Studio Code
06:05
Commit changes in the cloned repository
11:34
Git diff command
13:56
Overview of the changes
03:43

Merging branches

16 lectures
Section 8 Introduction
01:14
PDF - Merging branches
00:01
Why branches merging is needed
03:27
Fast forward merge
04:15
Merging process
01:53
Fast forward merge in action
06:57
3-way merge
05:59
Performing 3-way merge
12:38
Observing Git repository after 3-way merge
06:40
Installing SourceTree
04:00
SourceTree in action
06:34
What is merge conflict
03:05
Creating merge conflict
09:48
Observing conflicts in staging area and working directory
06:44
Resolving merge conflict in Terminal
03:00
Resolving conflicts in VS Code
09:00

GitHub and remote repositories

12 lectures
Section 9 Introduction
00:55
PDF - GitHub and remote repositories
00:02
What is Git hosting service
03:35
Creating GitHub account
03:32
Now default branch for new repositories at GitHub is "main"
00:16
Exploring first repository at GitHub
11:00
Creating another commit at GitHub
02:56
Creating new branch at GitHub
01:25
Making changes in the new branch
04:22
Cloning remote repository
05:14
What is remote repository
02:55
How remote repository empowers collaboration
04:03

Git push, fetch and pull

23 lectures
Section 10 Introduction
01:35
PDF - Git push, fetch and pull
00:02
Overview of the push, fetch and pull Git commands
06:15
What is origin
04:17
List remote and local branches
03:04
What is tracking branch
04:59
Checkout remote branch
03:55
Git remote show origin
03:08
Git fetch in action
06:22
Git pull is 2-step process
03:54
How to perform git pull
05:08
What is FETCH_HEAD
08:24
Git pull with fast forward merge
07:37
Fetch remote changes manually
09:09
Merge FETCH_HEAD manually
06:05
Resolving conflicts during Git pull
11:58
Pushing to remote repository
09:27
Commit under another author
02:42
Remote and local branches are in sync now
03:34
Create remote branch based on local branch
08:52
Update tracking statuses of the branches
07:59
Remove remote branch using local terminal
03:52
Git show-ref
04:24

Pull requests

23 lectures
Section 11 Introduction
01:03
PDF - Pull requests
00:01
Collaboration between contributors
04:29
What is pull request?
02:35
Why pull request was named pull request
06:11
Pull request or Merge request
04:55
Pull request step-by-step
07:49
Create new repository at GitHub
06:53
Changing author of the last commit
02:32
Pushing branch to remote
05:00
Open pull request
07:30
Adding comments and approving pull request
09:24
Creating and publishing new branch using GitHub Desktop
05:29
Signing in to GitHub in the GitHub Desktop
01:24
Creating and merging pull request
09:13
Adding new collaborator under GitHub
03:55
Exploring own GitHub account
04:49
Opening and merging PR by collaborator
06:36
By default merging is allowed without approvals
02:23
Configure protected branch rule
04:18
Merging after required approve
02:56
Exploring pull requests in the public repositories
05:58
Working with issues at GitHub
11:30

Forks and contribution to the public repositories

14 lectures
Section 12 Introduction
00:50
PDF - Forks and contribution to the public repositories
00:03
Creating Fork
04:46
How to sync changes from the parent repository
05:13
Adding new upstream remote repository
02:04
Fetching changes from upstream
02:26
Synchronizing changes from upstream
10:55
How to open pull request from the forked repository
02:32
Plan for creating pull request from the forked repository
01:59
Removing repository collaborator
02:07
Forking repository
03:00
Committing changes in the forked repository
03:17
Open pull request from the forked repository
04:31
Approving and merging pull request from the forked repository
11:43

Git Tags

10 lectures
Section 13 Introduction
00:54
PDF - Git Tags
00:01
Git tags overview
03:16
Staging vs Production
06:52
Semantic versioning
11:08
Lightweight vs Annotated tags
04:23
Creating lightweight tags
09:32
Creating annotated tag
02:50
Exploring git tag object
03:04
Pushing tags to remote
10:19

Rebasing

13 lectures
Section 14 Introduction
01:26
PDF - Rebasing
00:01
Introduction to Rebasing
01:33
Merging vs Rebasing
05:13
How to perform rebasing
01:56
Rebasing - STEP 1
02:48
Rebasing - STEP 2
02:39
Creating new repository
02:15
Creating feature branch and making changes
04:50
Rebasing feature branch on top of master branch
03:05
Completing rebasing by performing merging
01:55
Exploring graph and commits in SourceTree
05:09
Deleteing feature branch and pushing to remote
01:38

Ignoring files in Git

9 lectures
Section 15 Introduction
01:11
PDF - Ignoring files in Git
00:02
Introduction go Git ignore
02:18
Git file statuses - untracked, tracked and ignored
02:07
Basic gitignore rules
08:01
Pushing repository with ignored files to remote
02:36
Committing previously ignored file
02:53
Ignore previously committed file
04:08
Git ignore common practices and templates
05:31

Detached HEAD

5 lectures
Section 16 Introduction
01:23
PDF - Detached HEAD
00:01
Detached HEAD state
04:22
Making experimental commits in detached HEAD state
08:27
Retaining changes made in the detached HEAD state
08:03

Advanced Git

19 lectures
Section 17 Introduction
00:50
Cloning one of the public repositories
03:13
If "git lg" command is not available
00:07
Git log options - oneline, graph, stat
05:41
Git shortlog
01:43
Filtering commits by author or keyword
02:51
Pretty formatting of git log
03:06
Filter out merge commits in git log
03:04
Git reset
10:17
Git revert
08:32
Modifying last commit using amend option
03:51
Cherry-picking commits
05:52
Reflog - log of all Git operations
07:12
Stashing changes using terminal
05:25
Stashing using GitHub Desktop
02:24
Garbage collection
03:19
Squashing of commits at GitHub
07:58
Interactive rebasing with squashing in the local repository
07:39
Git development workflow
06:19

GitHub Pages

9 lectures
Section 18 Introduction
01:32
Creating simple website using GitHub Pages
04:21
Hosting any Repository using GitHub Pages
08:26
Creating basic React application
09:49
Preparing React application for publish to the GitHub Pages
08:42
Fixing error with cached credentials by using SSH instead of HTTPS
10:42
Verifying React GitHub Page
07:26
Configuring custom domain for GitHub Pages
10:57
Creating static GitHub Page using markdown
04:58

Git Hooks

25 lectures
Section 19 Introduction
01:48
PDF - Git Hooks
00:01
Normal Git workflow without Hooks
03:08
What are Git Hooks
07:28
How Git Hooks could be used on practice
05:06
Using pre-commit Hook
13:18
Enabling post-commit Hook
04:48
Disabling rebasing using pre-rebase Hook
06:55
Match authors Email against Regular Expression
07:21
Local Git Hooks are NOT pushed to the remote
07:17
Cleaning up Local Git Hooks repository
05:13
Initializing new Node.js project
07:53
Installing Jest NPM package for testing
03:23
Adding mult and sum modules with tests
09:48
Which Husky version to install
00:06
Using pre-commit NPM package for automation of the pre-commit hook
07:25
Cloning remote repository and verifying pre-commit hook
04:11
Replacing pre-commit NPM package with husky
05:54
Skipping all Git Hooks using --no-verify option
04:43
Introduce linter and run linter in the pre-commit Hook
14:06
Introducing lint-staged package for checks only of the staged files
06:29
Verifying selective linting and testing using lint-staged
04:46
Adding post-commit Hook
03:35
Verifying commit message using commitlint
09:39
Git Hooks Summary
03:01

BONUS: Git and GitHub Crash Course (1 hour)

23 lectures
Git Crash Course Overview
01:49
Installing Git
01:07
Initializing new Git Repository
03:47
Git Object Types
01:18
Hashes of the Git Objects
01:31
Adding changes to the Staging Area
07:16
Configuring Git author name and email
03:47
Committing changes
02:58
Exploring commits history
05:45
Basic Git Commands
02:05
Checking out commits and branches
04:22
File tracking statuses in Git
03:26
Staging and Committing changes using one command
02:45
Branches and merging of the branches
06:04
Branches merging in action
07:45
Exploring commits tree using graph option
01:54
GitHub and repository hosting services Overview
02:39
Creating remote repository at GitHub
02:30
Pushing from the local repository to remote
03:36
Committing at GitHub and pulling to the local repository
02:35
Exploring and reading Git Objects
04:11
Reading contents of the HEAD file
01:15
Git Crash Course Summary
00:58

Wrap Up

2 lectures
Wrap Up
00:23
Bonus Lecture
00:44

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.