Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Version Control with Git: Step-by-Step Tutorial!: 3-in-1
Rating: 4.5 out of 5(18 ratings)
124 students

Version Control with Git: Step-by-Step Tutorial!: 3-in-1

Manage your projects with the aid of hands-on exercises that make Git version control easy for you!
Last updated 11/2018
English

What you'll learn

  • Configure Git easily to get it working on any system and ensure name and email are used for commits.
  • Find out Basic Git commands that you will use in every project such as git init, git add, git commit, git push, git pull, and git fetch.
  • Set up Git repositories, clone an existing repository, and work with local and remote branches and tags.
  • Optimize workflows by leveraging the different workflow styles to suit the needs of the project.
  • Make your code linear and get better control over it with features such as Rebase and Blame.
  • Integrate external software into your project without affecting your app, with the help of SubModules.
  • Eliminate errors easily with features such as Reset and Revert and develop clean code in Git.

Course content

3 sections84 lectures7h 36m total length
  • The Course Overview1:53

    This video provides an overview of the entire course.                        

  • What Is Version Control?3:27

    Learn what Version Control is as a concept, what it is used for, and why it can be so useful for software developers.                         

    • Overview of Version Control as an abstract concept

    • Look at an outline of Version Control’s major benefits

    • Explain why Git is our chosen VCS system 

  • Installing and Configuring Git4:10

    Learn how to install Git on your machine, be it OS X or Windows.                         

    • Download the installer for your operating system

    • Run the installer

    • Configure Git on your machine   

  • What Is the Terminal?1:41

    The terminal is a text-based interface to our computer and  operating system. It will be the primary method of interaction with Git  in this course.                         

    • Explain the reasons for using the terminal

    • Outline the terminal’s capabilities for OS interaction and control

    • Handle “falsey” expressions in an else block   

  • File System Navigation Using Your Terminal3:18

    Filesystem navigation is one of the most important skills to have  when using the terminal. Navigating to different folders and listing  their contents is a fundamental part of most terminal usage.                         

    • Navigate between different locations in the filesystem

    • List the contents of directories

    • View help files for terminal commands 

  • Manipulating Files and Folders5:23

    Consider the following: creating a folder, moving a file or folder  to a different location, copying a file, renaming a file, or reading  its contents using a few simple commands. These operations can be very  useful if you want to make some quick changes to your filesystem without  using your file explorer.                         

    • Learn about various file and folder manipulation commands

    • Practice the use of the commands   

  • Using VI as an Editor3:17

    Vi is a very powerful command-line text editor that allows users to edit and read any text files directly from the command line.                         

    • Learn about VI as an editor

    • Open and edit a new file using VI

    • Learn how to quit VI 

  • Configuring and Initializing a Repository1:58

    The git init command can be used to turn any folder on your  computer into a Git repository. This will be the starting point for our  Git learnings.                         

    • Initialize a repository on your computer

    • Observe what this command does under the hood 

  • Tracking Files5:50

    Tracking files is the process of telling a Git repository to track the changes made to those files over time.                         

    • Tell Git to track specific files

    • Learn the different stages that changes can be in

  • Viewing Changes2:33

    A key component of Git is viewing the changes you have made to  files since your last commit. To do this, we can use the Git diff  command.                         

    • Make some changes to the repo

    • Run the Git diff command

    • View the diff output 

  • Committing Your Changes3:51

    Once changes have been made in the repository, we will want to save those changes. To do this, we use the Git commit command.                         

    • Make and view your changes using Git diff

    • Save those changes to the repository using Git commit

    • Provide a useful message to the commit

  • Setup Git Ignore Files4:01

    There will be files in our Git repositories that we will not want  to track the changes to, such as build artefacts. We can use Git ignore  lists to specify these files.                         

    • Decide what files are to be ignored

    • Create a .Gitignore file in the repository

    • Write an expression to match the filenames of ignored files

  • Browsing Project History5:35

    The main focus of Git is to track changes to files over time. To  view all changes committed to a repository over a certain time period,  we can use the Git log command.                         

    • Open a repository that has been committed to

    • Use Git log to view all changes

    • Pass arguments to filter the log to your liking

  • Undoing Mistakes2:56

    Sometimes when programming, we introduce bugs that break the  software we work on. Git can be used to easily revert the change that  broke the program.                         

    • Identify the commit to be reverted

    • Use Git revert to undo the mistake

    • Commit the revert 

  • Cloning Repositories2:57

    We won’t always start the projects we work on from our own  machines. To begin working on an existing repository, we can clone the  repository using Git clone.                         

    • Get the URL of the repository you want to clone

    • Clone it to your local machine

    • Start working on your clone of the repo

  • Using Remote Repositories7:48

    In order to share work with other programmers, we need to send to  and pull changes from remote repositories. We can manage our  repositories’ remotes using the Git remote command.                         

    • Use Git remote to show our configured remote repositories

    • Add or remove remotes

    • Fetch and merge changes into your local repository 

  • Using Tags in Git4:21

    Sometimes we might want to designate a certain commit as one of  significance, for example, a certain released version. We can do this  using Git tags.                         

    • Add tags to certain commits with messages

    • Push the tags to remote repositories

    • Show the commit a tag points to 

  • What Is a Branch?2:45

    Branches can be used to enable parallel, simultaneous workflows in a single repository.                         

    • Learn how they are represented by Git

    • Learn why they are so useful 

  • Creating New Branches5:10

    Branches can and should be used often to enable parallel workflows  and allow developers to work independently in the same repo. The Git  branch command can be used to create new branches.                         

    • Check out the branch you want to branch from

    • Use Git branch command to create new branch

    • Check out the new branch and begin working 

  • Merging Branches10:19

    Once our work has been completed on a separate branch, we will  want to add that code back to the main branch of the repository. To do  this, we use the Git merge command.                         

    • Check out the branch you want to merge into

    • Use the Git merge function

    • Commit the changes to the repo   

  • Resolving Merge Conflicts6:42

    Sometimes, automatic merges will not be possible due to changes  having been merged into the repository that our changes conflict with.  To fix this, we need to follow the conflict resolution workflow.                         

    • Initiate the merge process using the Git merge command

    • Manually choose which changes to merge into the master branch

    • Commit the resolved merge changes to the repository

  • Remote Branches3:08

    When working with remotes, we need branches that track their  equivalent branch on the remote repo. These are called remote tracking  branches.                         

    • Create new branch on the local repo

    • Push the branch to the remote repository

    • See other collaborators fetching your branch and track it

  • Rebasing4:03

    Sometimes we will want to incorporate new changes from the branch  we branched from into our feature branch. To do this, we can use the Git  rebase command.                         

    • Check out the feature branch to rebase

    • Use the Git rebase command with the target branch

    • Continue to work with new changes incorporated into the feature branch 

  • GitHub1:32

    Sharing code repositories with others requires us to host the  remote repository somewhere where it is is mutually accessible. GitHub  can be used to do this.                         

    • Create a repository on GitHub

    • Push code to the remote repository

    • Have others clone and work on the repository 

  • Forking Repositories2:11

    When contributing changes to existing repositories we may not  always have write access, and may need to create a copy to work on. This  can be done using forking.                         

    • Create a fork of the repository to contribute to

    • Create changes on the forked repository

    • Keep the fork up to date by adding upstream remote 

  • Commit Guidelines4:51

    When contributing to any repository, we should structure our  commit messages well. This helps other collaborators understand the  intention behind our contributions, and aids the “debugability” of our  changes.                         

    • Use a clear structure for commit messages

    • Keep commits messages succinct and commits logically separate

  • Squashing Commits4:38

    When working on our local repository, we may make several commits  that create one logically distinct contribution. Before pushing our  changes to the remote, we can squash those commits into one single  commit for simplicity.                         

    • Create multiple commits on the local repository

    • Squash several commits into one logically distinct unit

    • Push squashed commits to the repo 

  • Merge Requests4:38

    Once we have created some changes on our forked repo, we will want  to contribute those changes back into the original repository. To do  this, we can use a merge request.                         

    • Push local changes to our repository fork

    • Open a merge request with the original repository

    • Get the changes merged into the original repository

  • Aliasing Commands2:27

    Sometimes, we may want to customize our Git workflow and create  shortcuts for common tasks. To do this, we can create aliases in Git.                         

    • Think of the command you want to alias

    • Add the alias to your global Git config

    • Use the shorter command to save time and effort

  • Test Your Knowledge

Requirements

  • Prior basic knowledge of Git and version control will be useful (Not Mandatory).

Description

Three complete courses in one comprehensive training program.   

Using Git, you can track the history of file and code changes, deliver new versions of software without relying on any continuous delivery mechanisms, and protect your code from any mistakes made while programming! Git version control gives developers the capability to manage, version, release, and share a code base, free from the nightmare of breaking code. With an enhanced workflow and a faster release cycle, it makes agile software development much easier. Controlling your projects—small or large—is easier now, owing to the advanced functionalities that Git brings with it. It will help you implement that perfect workflow you have been looking for!

This comprehensive 3-in-1 course is an easy-to-follow guide full of examples to help you gain knowledge and expertise in Git. To begin with, you’ll learn how to create, contribute to, and collaborate on software projects using Git. Set up Git repositories, clone an existing repository, and work with local and remote branches and tags. You’ll also manipulate and change the Git commit history, to tackle practical workflow problems. Integrate external software into your project without affecting your app, with the help of SubModules. Finally, manage your projects with the aid of hands-on exercises that make Git version control easy for you!

By the end of the course, you’ll learn versioning and manage your code to deliver projects with better performance using version control with Git!

Contents and Overview

This training program includes 3 complete courses, carefully chosen to give you the most comprehensive training possible.

The first course, Learn Git in 3 Hours, covers building powerful and effective projects using Git Version Control Systems. In this course, we’ll teach you the basics of using Git and explain how it works. To begin with, we’ll show you how to install Git and effectively use your computer’s terminal or command line to navigate the file system and create and edit files. Then we’ll cover all the commonly used commands in Git that make up the vast majority of any Software Engineer’s workflow.
Moving on, we’ll explain Git’s branching workflow, why it’s such a useful feature, and how to use it in your projects. Once you’ve learned all this, we’ll discuss some advanced Git workflow techniques that will make you a valued contributor and collaborator on any project. You’ll be able to create your own Git repositories or clone and contribute to existing ones. This will allow you to track the changes to sets of files over time, recover data you might lose, and collaborate with others on projects. You’ll have a profound understanding of Git’s branching workflow, and how to use it in the best possible way in your projects. By the end, you’ll be familiar with using Git and use VCS to handle large projects easily and make well-crafted contributions to your own or others’ projects.

The second course, Hands-On Version Control with Git, covers better project workflows with Distributed Version Control. In this course, you will learn how to use distributed version control to record changes to the project file system to optimize workflows. Git is a highly sought after skill when it comes to landing a programming job. However, Git can be pretty useful even to non-programmers such as designers, authors, and so on. You'll learn how to configure your environment to use Git, exploring the inbuilt tools for migrating without losing code files. You'll explore the Git data model and how you can navigate through databases with simple commands. You'll debug your application with Git and use various techniques to find faulty commits. You'll also learn to go remote with your repository with GitHub, updating and cloning remote repositories. Then you'll set up your repositories in BitBucket cloud. You will set up your own Git repositories, configure access, find and recover from repository errors, and perform repository maintenance and troubleshooting. Finally, you will work with centralized and distributed version control systems and see how to use Git to bring order to the chaos of collaborative software development. By the end of the tutorial you'll have figured out how to use Git, mastered workflows (from basic to open source), and adopted the one that fits your needs

The third course, Mastering Git, covers managing your projects with the aid of hands-on exercises that make Git version control easy for you! This course is an exploration of solo and collaborative Source Control Management with the intention of expanding and improving your confidence and expertise with Git. You’ll begin with a brief overview of Source Control Management before setting up and verifying your Git installation. Then, you’ll move on to a more detailed look at the Git workflow and explore variants and the not-so-rare “special situations”. With a strong understanding of the Git history and structure, you’ll learn how to use power tools as Branching, Merging, Reset, Revert and so on. Next, you’ll take a deep dive into more intriguing features of Git such as Rebase, Stash, Aliases, and Patches. You will explore several examples of these commands to improve the efficiency of using Git. Finally, when you have mastered the various tools provided by Git, you’ll be provided with some suggestions that’ll help you to move forward with Git. Once you are done with this course, perhaps you will be the one providing answers to others in trouble!

By the end of the course, you’ll learn versioning and manage your code to deliver projects with better performance using version control with Git!

About the Authors

●        Ross Conyers is a Computer Science Graduate and Software Engineer who started programming and building computers in his teens and went on to study Computer Science at the University of St Andrews. When he started programming, he worked with web technologies and Java. During his degree, he focussed on network programming and have developed a love of all things. Throughout his work, he did programming mostly in Python, working on high traffic, data-intensive, distributed systems that are used by millions of people per day. He believes to share some of his knowledge gained within several years.

●        Bibhash Roy is a hardened Software Developer and Professional turned entrepreneur, with over 25 years of rich industrial experience (17 years in Software Development) in diverse fields. However, he is passionate about teaching whatever he has learned in his career, spanning an array of prestigious stints at large Global Corporate powerhouses such as PricewaterhouseCoopers and Siemens. Over the years, he has gained deep knowledge and expertise in programming languages such as Java, C, C++, PL/SQL, Scala, and Python to name but a few. He has worked extensively in various frameworks and tools such as Spring, Struts, Hibernate, Oracle, MongoDB, Cassandra, Hadoop, Spark, and others. DevOps intensely interests him. He has been working with Git and GitHub since their inception. As a part of his engineering responsibility, he has developed and architected numerous highly scalable and mission-critical applications for many Fortune 500 companies. Currently, in the role of founder and CEO, he is spearheading Whitepeak Software, a cloud-based software development company deeply involved in domains such as big data, mobile, and the Internet Of Things (IoT)!

●        Thom Parkin has been writing software since the days when all phones had wires. A self-proclaimed ParaHacker, Thom immerses himself in technology both professionally and as a hobby, spending his free time participating in the world of open source software. When he is not playing euro board games, he is writing software or writing about software development.

Who this course is for:

  • Developers, Software Engineers, Programmers, and Project Managers who want to use Git to deliver their projects better and faster as well as use version control to track, modify, and share content in their projects!