Git Basics: In Theory and Practice

Master Git with Tony Hillerson's course. Understand source control management, practical usage, collaboration with teams, and real-world applications in open source projects.

  • Overview
  • Curriculum
  • Instructor
  • Review

Brief Summary

This course, taught by Tony Hillerson, dives into Git for source control management. From grasping its distributed nature to mastering collaboration on Github, you'll learn practical workflows and advanced techniques. It's all about making Git work for you, your projects, and your development team efficiently.

Key Points

  • Introduction to Git and its features.
  • Understanding the distributed nature of Git.
  • Hands-on practice with Git operations and workflows.
  • Using Git for team collaboration.
  • Advanced Git techniques and problem-solving.

Learning Outcomes

  • Develop a strong daily Git workflow for personal projects.
  • Collaborate effectively with teams using Git's distributed features.
  • Employ advanced Git tools and strategies to manage and fix errors.

About This Course

Learn Effective Source Control Management with Git. Taught by Tony Hillerson. Learn how to use Git practically.

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:

Theory:
  • 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

Practice:
  • 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:

Theory:
  • 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?

Practice:
  • 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:

Theory:
  • 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?

Practice:
  • 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

  • The normal Git workflow

  • How to collaborate with your team members using Git

  • Productivity tips

Instructor

Profile photo of Tony Hillerson
Tony Hillerson

Tony Hillerson is a Partner and Developer at Tack Mobile. He graduated from Ambassador University with a BA in MIS. On any given day he may be working with Rails, Objective-C, Java, HTML, Coffeescript, Javascript, or shell scripts. Tony has spoken at RailsConf, AnDevCon, 360|Flex, and has created the popular O'Reilly Android screencasts: ( http://oreilly.com/catalog/0636920004240/ and http://oreilly.com/catalog/0636920010289 ) Tony is...

Review
4.9 course rating
4K ratings
ui-avatar of Joseph K.
Joseph K.
4.5
9 years ago

Great and interesting course. Enjoyed every topic !!

  • Helpful
  • Not helpful
ui-avatar of Adam Haley
Adam H.
5.0
11 years ago

Easy to follow, gave me a great hands-on working knowlege of GIT

  • Helpful
  • Not helpful
ui-avatar of Jay Beritz
Jay B.
1.0
12 years ago

1. Audio levels were extremely low.
2. The instructor has a monotone voice which is very challenging to listen to for any length of time. There were long awkward pauses in his presentation and times he took a really long time to say what he needed. It was as if he was distracted the entire time.
3. The three short sections including one recap about using Github.com never really showed you how to get around on the site. It also never covered creating or editing a README file.
Even if you purchased this course with a 65% discount as I did, I still wouldn't recommend it.

  • Helpful
  • Not helpful
ui-avatar of Brennan Stehling
Brennan S.
4.0
12 years ago

I really needed to learn how Git worked so I can use it effectively and after going through this course and keeping lots of notes I can now use Git well and can start digging into some of the powerful features I did not understand or even know about.

I would like to see some of the explanations improved. It's hard to fully understand how rebasing and other related features really work although I generally get the idea from the current explanations.

  • Helpful
  • Not helpful
ui-avatar of Anthony Leone
Anthony L.
4.0
12 years ago

I have been a developer for a long time. I have used version control systems like rcs, sccs, cvs, pvcs, and svn - so the topic is not a new one for me. This course was perfect for me. I know enough about git to accomplish anything I would normally need to do with a version control system using git. I believe someone who has never used a version control system, would be able to understand and use the information in this course easily as well.

  • Helpful
  • Not helpful
ui-avatar of Chuck Kubiak
Chuck K.
2.0
13 years ago

Just this guy talking, half the time you have to stop the video to figure out what he is talking about.

  • Helpful
  • Not helpful
ui-avatar of Tim Gavin
Tim G.
1.0
13 years ago

From the very first video I felt like I was dropped into the middle of a conversation without knowing the basics and had to try and figure out what was going on. If there was a prerequisite for this course I certainly didn't see it, however it feels like there should have been a disclaimer about having a pro-level grasp of the terminal, among other things. The author just jumps around and starts doing things without telling you why or what he's doing, which was incredibly frustrating and confusing. I wouldn't be so upset if I didn't shell out $50 bucks for this garbage. Never again.

  • Helpful
  • Not helpful
ui-avatar of Eduardo Valdes
Eduardo V.
3.0
13 years ago

The course is straight forward, not complicated or waste of time. I was able to learn basic and practical stuff and how to use in a daily basis. Thanks for creating this product. One last note: Please, do something to make the player better.

  • Helpful
  • Not helpful
Leave A Reply

Your email address will not be published. Required fields are marked *

Ratings

Courses You May Like

Lorem ipsum dolor sit amet elit
Show More Courses