
Learn Git basics and GitHub workflows to collaborate in teams, starting from the command line to staging, committing, conflict resolution, and branching, then working with remote repositories on GitHub.
Learn how to get the most from this course by watching at least two videos daily, practicing with lectures, building a project, and creating a cheat sheet of git commands.
Learn how git enables a team to work on multiple features in parallel, merge changes without conflicts, and track history across remote servers and local machines.
Git enables developers to work side by side using local and remote repositories; a local repository stays on your machine, while GitHub hosts the remote copy.
Install Git on your system, configure your global username and email, and verify the setup in Git Bash to learn how changes are tracked in a repository.
Install Visual Studio Code editor from the browser, download and install it on your operating system, and prepare to use it with Git in this course.
Discover the git local workflow, from initializing a folder and adding files to the staging area, to committing snapshots and pushing changes to a remote repository like GitHub.
Learn to use the command line to create directories and files, navigate directories, delete items, and initialize a local Git repository, laying the groundwork for Git and GitHub workflows.
Explore how to stage files in the Git staging area and commit changes using Git add, Git status, and meaningful commit messages to create a snapshot of your code.
Explore the role of the .git directory in a repository, learn how to remove a file from staging, undo initialization, reinitialize a repo, and understand git status basics.
Open the code editor from the terminal, modify files in the working directory, and use git to check status, stage changes, and commit with a descriptive message.
Learn to list previous commits with git log and inspect changes with git show, while understanding the staging and working areas and how to add and commit changes.
Learn to use the express commit technique to stage and commit changes in one command, and see how git status and git add interact with the staging area.
Learn to revert to previous commits with git checkout, review history with git log and git status, and restore a specific state by checking out a commit hash.
Learn to tailor git log outputs by specifying commit counts, viewing patch changes with --patch, and displaying logs on a single line, plus basic checkout and stats.
Learn to use git log with pretty=one line to view commit messages and authors in the terminal, and control output by limiting to the last five commits.
Create git aliases to shorten long commands with git config --global alias; for example, last ten commits on one line with git log --oneline and a status alias.
Learn how to use gitignore to ignore specific changes within a git repository, create and update ignore rules, and commit those changes with clear messages.
Learn how Git branches enable parallel development by creating, listing, switching between, merging, and deleting branches, and understand branches as independent lines of development that isolate work.
Learn how to list branches, create and switch branches, merge changes from a branch into master, and delete branches, using master and red branch examples.
Learn to identify and resolve Git merge conflicts by choosing between changes on the master, green, or red branches and committing the final result.
Tag project milestones with git to capture version points, create descriptive version tags like v1.0 and v2.0, attach messages, and list, checkout, or delete tags to manage history.
Learn how to use git stash to save and hide in-progress changes, restore them later with stash pop, and manage stash lists for smooth collaboration.
Use git revert to undo a specific commit, preserving history, as shown by applying the revert, confirming with log, and still able to checkout the original hash.
Discover how git reset undoes changes in a repository, compare soft and hard resets with previous commits, and learn to recover or permanently discard edits using commit hashes.
Use git diff to compare changes between a commit and the current file, showing deletions and additions, and review with git status and git log before a hard reset.
Learn to use git branching by initializing a repository, staging and committing changes, and planning separate front-end and back-end branches on master.
Create and manage front end and back end branches using git, switching from the master branch and verifying work with status, to organize project development.
Explore working with the backend branch to add a login button to the page, compare frontend and backend changes, and merge updates from the master branch.
Merge front-end and back-end branches on the master branch, resolve conflicts, and commit changes to create a complete login form with integrated functionality.
Tag the current state as a version, commit changes, and use checkout to switch between 1.0 and 2.0, revealing how edits create project snapshots.
GitHub acts as the remote repository for your local Git projects, and you sign up, verify email, and log in to connect your local repository to the GitHub server.
Set your repository's default branch back to master, changing it from the new main default via the repository settings.
Learn to create a GitHub repository, set up your profile, initialize the repository, choose public or private visibility, and push local code.
Learn how to push local repository changes to GitHub by linking to a remote, checking status, and executing the push commands to transfer code.
Learn how to push changes from a local repository to a remote GitHub repository, create and stage files, and simplify future pushes by configuring git config --global push.default simple.
This lecture explains push errors caused by an out-of-sync remote repository and presents two resolutions: force push (not recommended) or sync by fetching and pulling to align local and remote.
Compare git fetch and git pull to learn how changes move from GitHub to your local repository; fetch downloads without merging, while pull downloads and merges.
Learn how to copy a repository from GitHub to your local computer using git clone, copy the repo link, clone in the terminal, and verify with cd and status.
Clone a GitHub repository to your local computer and rename the destination folder. See how a folder name affects the clone, and what files like readme and .gitignore appear inside.
Rename your repository and update its remote URL, then learn how to transfer, archive, and delete a repository in GitHub settings.
View commit details on GitHub by examining comments, time stamps, and color-coded changes, and learn how to leave messages and interact with contributors.
Open your GitHub project and review the readme to add or clarify project details. The readme explains the project to other developers and how to use it.
Push changes from a local front end branch to GitHub, set the upstream to origin, and verify the new front end branch alongside master.
Learn to delete a remote GitHub branch from the terminal by pushing :designer to origin, removing the designer branch; verify that only master and front end remain.
Create three git tags—unstable, version one, and version two—and associate each with a commit before pushing them to GitHub, using both single-tag pushes and the --tags option.
Delete a tag on GitHub by removing it locally with git tag -d <tag> and then deleting the remote tag with git push origin :<tag>, ensuring removal from both repos.
Create a release on GitHub from a tag, add release notes and features, and publish the release associated with tags to your dashboard.
Explore how pull requests enable teamwork on GitHub and manage contributions across repositories. Learn to create and switch branches, push changes, review pull requests, add comments, and collaborate effectively.
Learn to handle GitHub pull requests in a real project, review changes, approve or request edits, and merge updates, with emphasis on secure password checks before sending cookies.
Add collaborators to your GitHub repository by inviting users via username or email, then manage access, accept invitations from email, and remove access as needed for private or public projects.
Explore how to use the GitHub insights tab to view repository data, including contributors, network graphs, commits, comments, and branches over a chosen time period.
Discover how to enable GitHub issues, create new issues with a title and description, and invite collaboration on your own and other people's projects.
Explore the issues tab, review a fixed issue on the index page, and close the issue on GitHub with comments.
Learn to assign labels to issues or pull requests in a GitHub repo, explore built-in labels, create custom labels, and apply them to organize issues by priority.
Explore GitHub gist, a feature for sharing single files or code snippets with others, and forking, cloning, embedding, or commenting on public or secret gists.
Learn how to download and install Visual Studio Code across Windows, macOS, and Linux, and see how the editor helps simplify coding tasks within this section.
Enable Git in Visual Studio Code by opening settings, ensuring the source control option is enabled, and using the gear icon to verify the Git integration is active.
Learn to initialize a Git repository for a new project in Visual Studio Code by opening a folder, using the integrated terminal, and confirming status on the master branch.
Stage a new file in Visual Studio Code, switch from unstaged to staged with the plus icon, then make your first commit and view it in the timeline.
Create and switch between branches in Visual Studio Code by creating a new branch named front end from master, then verify the active branch in the lower left corner.
Merge changes across master, front end, and back end branches in VS Code, stage and commit updates, and switch branches with the command palette for conflict handling in next lecture.
Learn to resolve merge conflicts in Visual Studio Code by comparing changes from the master and front end branches, choosing accept options, and commenting the resolution before committing changes.
Learn to compare changes with a diff view in Visual Studio, comparing current file edits to the last state and previewing how staged changes will appear.
Learn to revert changes in Visual Studio Code by discarding edits, restoring files, and using Git commands in the terminal to view status and log.
Push a local repository to GitHub from VS Code by creating a GitHub repository, adding a remote, and pushing committed changes, signing in when prompted.
Explore Git merge versus rebase, understand branches and commit history, and learn how network graphs on GitHub illustrate merges across master and feature branches.
Compare git merge and git rebase, showing how merge preserves commit history chronologically across master and feature branches, while rebase creates a linear, altered history.
Explore the difference between merge and rebase in Git, and learn how each approach incorporates master changes into a feature branch while shaping commit history.
Use git bisect to locate the first bad commit by marking good and bad states and iterating between commits. Inspect commit logs and hashes and verify fixes in a browser.
In this course, you would learn Git and GitHub from beginner to advanced levels using a practical approach. I have tried as much as possible to make the course simple, easy to understand and beginner-friendly.
Now, what is the importance of learning git and GitHub?
If you are a developer or a software engineer and you hope to work either as a freelancer or in a software development company, then the knowledge of Git and GitHub is a MUST. This is because git is the version control system that helps you track and manage changes on a project while you collaborate with other developers. It also helps you participate and contribute to open source projects of potential employers.
But even if you don't work in a software development company, git and GitHub would still help you manage version control in your private project and this is a good enough reason to learn Git and GitHub.
Course Approach
In this course we begin by learning the basics of git and then together, we create a project that is uploaded to GitHub. we then go into some advanced concepts.
The course is organized to cover the following
1. Basics of the command line.
2. Basics of Git
3. Practicing Git
4. Some advanced Git concepts
5. GitHub
5. Using Git in Visual Studio Code.
But what is Git?
Git is an Open Source Distributed Version Control System that help developer manage changes to a project over time.
Let's break down the keywords in the git definition above.
Git is free to download and install and you can create a GitHub account for free also.
Control System: This basically means that Git is a content tracker. So Git can be used to store content — it is mostly used to store code due to the other features it provides.
Version Control System: The code which is stored in Git keeps changing as more code is added. Also, many developers can add code in parallel. So Version Control System helps in handling this by maintaining a history of what changes have happened.
Distributed Version Control System: Git has a remote repository which is stored in a server and a local repository which is stored in the computer of each developer. This means that the code is not just stored in a central server, but the full copy of the code is present in all the developers’ computers. Git is a Distributed Version Control System since the code is present in every developer’s computer.
What is GitHub?
GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere. To get started with GitHub, you simply need to create a free GitHub account.
By the end of this course, you would be comfortable using Git and GitHub.