Git Basics: In Theory and Practice
4.0 (12 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
295 students enrolled

Git Basics: In Theory and Practice

Learn Effective Source Control Management with Git. Taught by Tony Hillerson. Learn how to use Git practically.
4.0 (12 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
295 students enrolled
Created by Tony Hillerson
Published 7/2011
English [Auto]
Current price: $13.99 Original price: $19.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 3 hours on-demand video
  • 1 article
  • 3 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • The normal Git workflow
  • How to collaborate with your team members using Git
  • Productivity tips
  • Also, how to save your bacon with Git!
Course content
Expand all 31 lectures 07:34:14
+ Getting Started
3 lectures 06:09
Git uses your default command line editor when editing a commit message. Given the way I have you set up Git, on both systems this turns out to be Vim. Vim is a modal editor, which means that it has a few different modes. It starts out in the "Normal" mode. In Normal mode your keystrokes invoke Vim…
Editing commit messages with Vim
+ Session One: Git and You
8 lectures 39:40
What Is Git?
The Git Workflow
Working With Git: Commands and Configuration
Under The Hood
Session Recap
Session One Slides
63 pages
+ Session Two: Git and Your Team
9 lectures 58:54
Session Two Introduction
Diving Right In To Remotes
Remote Workflow
Working With Git
Branching In Action
Under The Hood: Remotes and Branches
Session Two Recap
Session Two Slides
89 pages
+ Session Three: Git in the Real World
11 lectures 01:09:28
Session Three Introduction
Git Productivity Tools Part I
Git Productivity Tools Part II: Interactive Add Demo
Git Productivity Tools Part III
Fixing Things Part I
Fixing Things Part II: Reflog And Fsck Demo
Fixing Things Part III: GC And Recap
Github Part I
Github Part II: Forking Demo
Github Part III: Recap
Session Three Slides
128 pages

Have you heard of Git? Have you been wondering what all the buzz is about? Have you heard about all the open source software projects moving to Github? Have you been thinking that it's time to give Git a try yourself? We think it is too, and we think this course will help.

This course is a different approach to learning Git than, say, reading online documentation or buying a book on Git because you'll see not only how Git works, but how you should work with Git. We'll show you the situations that you probably find yourself in as a developer all the time and how Git can help you work faster, work with more confidence, and save yourself and your teammates time by supporting a good workflow. We'll show you how Git works in practice, and also how to practice Git.

Session One: Git and You

In this first session we'll cover getting started with Git and daily workflow which will become second nature to you. We'll get it in your fingers. Not only that, but all the operations we'll use Git for will be completely local to our own systems.

One of the things that first piques people's interest in Git is that it's distributed. They wonder what that means and how it affects them. In later sessions we'll understand the answers to questions about the distributed nature of Git, but one side effect of it is that many of Git's operations are completely local to your own computer. A Git repository can live out a useful and completely local life all on one computer, and we'll see that side of working with Git.

When this session is complete you'll understand:

  • What does Git do?
  • Who came up with Git, and who works on it?
  • How Git keeps a history of your project over time
  • How Git stores your files
  • What are all those really long strings of letters and numbers?
  • How a Git repository is structured
  • What is Git's index for?
  • The components of Git: trees, refs, and blobs
  • Working with files in Git
  • The standard workflow when committing changes to the repository
  • Commits in Git
  • Working with git log
  • Querying the Git repository
  • How to get help on Git
Session Two: Git and Your Team

Git has no particular need to work with any repository than the local one on your computer, unlike many other version control systems but that wouldn't be very fun would it? Git really becomes useful when you and your team members use it to facilitate collaborating on a project. We'll start to understand what it means that Git is distributed.

One of the first things people wonder when they hear that Git is distributed, or that Git doesn't need a central server, is "Can I still have a central server for my team?". Of course you can, and many teams still work the same way they have with other versioning systems. We'll see how to do that as well as share changes with another computer directly. We'll set up an account on Github and use that to learn how to deal with remote repositories.

We'll also learn about very important concept in version control systems: branching. Git makes branching so easy that it's time to learn how you should be integrating branching into your workflow.

When this session is complete you'll understand:

  • What are remotes?
  • What are some strategies for collaboration with Git?
  • How does Git transfer changes?
  • How does pulling changes work?
  • How does branching work in Git?
  • What does rebase do?
  • What is the Git stash?
  • How does tagging work in Git?
  • Cloning a repository
  • Pushing, pulling, and fetching changes
  • Creating branches
  • Pushing and pulling from branches
  • Setting up a tracking branch
  • Merging and dealing with conflicts
  • How and when to rebase
  • Seeing who did what with git blame
Session Three: Git in the Real World

Session three is all about the how Git works and how you work with Git out there in the wild.

Chances are you first heard about Git and Github almost in the same sentence. In fact sometimes it's easy to forget that Github is just a logical extension to Git itself.

Github is a wildly popular way to host and collaborate on Open Source software projects using Git. Some of the most important software tools you may use every day are now hosted or mirrored on Github, such as Rails, jQuery, or Postgres. Github's unique philosophy on forking, or branching off developement on a software project, makes it easy for anyone to contribute to their favorite open source tools. We'll dig deeper into how to work with Github.

Next we'll go over a whole list of interesting tools Git gives you work a lot faster. Interactive adding, adding using patch mode, interactive merging, and some advanced logging and querying techniques for finding exactly what's been going on in your repository.

We'll also cover a very important topic in software development: "screwing things up". Not only do we often really mess up the project we're working on, we can also make mistakes in Git itself. Luckily Git is there to help with both of those kinds of problems. Git provides ways to not only commit changes, which is helpful in itself to any software project, but also to fix, reorder, play back, cherry pick, and recover lost commits.

When this session is complete you'll understand:

  • How can I get exactly what I want out of the log?
  • How can I find exactly what I want in the repo?
  • What is the reflog and what does it do?
  • Does the repository require any maintenance?
  • How does forking work on Github?
  • How can I stay up to date with the original repository?
  • How do I submit my commits back to the original repository?
  • git add -i
  • git rebase -i
  • git commit --amend
  • git reset, hard and soft
  • git revert
  • git cherry-pick
  • git gc
  • git reflog
  • Forking a repository on Github
  • Submitting a pull request on Github