Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Git Intuition - Beginning Source Control Management
Rating: 4.6 out of 5(10 ratings)
56 students

Git Intuition - Beginning Source Control Management

Learn Source Control Fundamentals in a Weekend with Git and Github
Created byMike Shah
Last updated 9/2021
English
English [Auto],

What you'll learn

  • Students will learn what source control management is, and why it is used.
  • Students will learn arguably the most popular source control system--'git' on the terminal
  • Students will learn the most common features of git to be productive for their first internship, hobby project, startup, or regular work.
  • Students will learn about the internals of how git works (not typically talked about in tutorials)
  • Students will get hands on experience, and learn how to become an advanced git user by understanding and developing a workflow with git.

Course content

9 sections53 lectures2h 43m total length
  • Introduction to Source Control and This Course1:37

    Software development happens over time. Software development happens collaboratively. In order to see, manage, and build on previous iterations of software, source control systems have been developed to assist in this process.

    In this course I am going to teach you todays most populare source control system by far--Git. This course introduces Git so that you understand the foundations of Git. This is not a course where you are going to memorize git commands, but a course where you are going to understand the foundations of how source control systems work, so you can have the mental model to use Git effectively for a long term and as the system evolves.

    Let's get started!

  • Git Mindset -- It's a file system1:55

    If there's one thing to change how you think of Git in this course, think of it as a file system.

    So if you've used the command line previously, and are comfortable with navigating files, then you should be able to understand Git without a problem.

    But it perhaps may also be comforting to know that Git is just a file system, and behind the scenes, there is no magic going on--just blobs of data organized in a tree.

  • Prerequisites0:59

    My expectation is that you know a little bit of command line and can otherwise navigate the terminal.

    If you are not otherwise comfortable navigating the terminal, please refer to the first few lessons of my course "Introduction to the Terminal: Linux, Mac, and Windows" linked in the resources section.

  • Course Objectives1:33

    Let's discuss our learning objectives!

    1. Students will learn what source control (sometimes called version control) is

    2. Students will learn arguably the most popular source control system--'git' on the terminal

    3. Students will learn the most common features of git to be productive for their first internship, hobby project, startup, or regular work.

    4. Students will learn about the internals of how git works (not typically talked about in tutorials)

    5. Students will get hands on experience, and learn how to become an advanced git user by understanding and developing a workflow with git.

  • Story Time: I lost all of my source code1:37

    Folks who have been using computers a while have likely experienced losing data. When I was writing one of my first video games, I lost all of my source code due to a power outage. No backups were automatically made, no secret backup files, no auto-save. This only has to happen to you once before you decide to use a system like git to save and backup your work frequently, or even automatically.

    Not only did I lose my code, but I also lost the history of 'why' I did things as I did (r.i.p comments....)

  • A brief history of version control2:46

    Git is not the only version control software. Git was created around 2005 by Linus Torvalds specifically to help with a larger project--the linux kernel to manage contributions to a code base by many developers. However, it's not the only system that exists out there--and it's worth noting others exist.

    • Git itself is the most popular today and excellent and best at managing source or text-based assets.

    • Concurrent Version Systems (a.k.a CVS) was popular earlier on in the 90s to early 2000s.

      • https://en.wikipedia.org/wiki/Concurrent_Versions_System

    • Subversion (a.k.a SVN) overtook CVS for the most part, and now Git has largely overtaken SVN. We'll learn the difference as SVN relies on a 'central repository' versus having 'local repositories' like Git.

    • Perforce is another popular version control system, and it's largely used in multimedia and gaming companies because it handles 'binary' assets (e.g. executable files, 3D assets, data files, etc.) in a more space efficient matter.

      • https://www.perforce.com/blog/vcs/what-source-control

Requirements

  • Students should have basic experience using a terminal
  • Students should have experience in a text editor (e.g. VIM, notepad, VSCode, Sublime, Atom, etc.)

Description

Overview

In this course you will learn the most popular source control tool--Git. Beyond learning the foundations of Git, we are also going to build your knowledge on the foundations of Git, so you understand how it works behind the scenes. This foundational knowledge will give you confidence to continue learning and using Git, whether for hobby projects or on the job. No matter what level you are in your career, learning Git will help you work smarter and more iteratively on your programming projects. This course will start with the fundamentals learning git commands locally, and then we will apply those skills to repositories hosted remotely. This is the Git crash course that you can complete start to finish in a weekend.

Topics you'll learn

Students should take this course if they want to learn:

  • How to use setup Git for your respective operating system.

  • How to use the basic git commands: init, add, commit, push, pull, merge, branch

  • How to resolve scenarios like the dreaded merge conflict!

Why you should take this course?

This course is accessible for students who are self-taught, in a boot camp, or university students and want to learn an essential skill. As an instructor I will work you through concepts at a relatively slow and gentle pace, but I do not hide the details from you of how Git works. This course can be your one stop shop for understanding source control management, and help you confidently use source control on the job.

This course is also compact, meaning you can complete it in a weekend as opposed to massive courses that are left unfinished and leave you wondering if you have big gaps in your knowledge when you revisit them. In this course, we learn a skill and then practice that skill to reinforce the learning in a practical scenario. I work through solutions step by step with the reason 'why' not just 'what to type'.

Who am I?

I have been teaching for over 10 years in universities and as a professor. I have worked in industry in big companies, startups, and as a consultant. I am looking forward to being your instructor for this course, and I hope you will get great value out of the lessons learned!

Who this course is for:

  • Programmers and developers who want to learn how to use the source control systems Git