Git and GitHub LiveLessons (Workshop) is a fast-paced, engaging video course that teaches developers the essentials of Git and GitHub. You will learn the key commands to quickly become productive using Git and best practices for using GitHub to collaborate with your team.
Featuring live, step-by-step demonstrations, the lessons in this workshop cover:
- Concise configurations—configuring just what you need to get the best out of Git
- Your first repo—initializing a repo, three stage thinking, working with the staging area
- Sharing your work—creating and configuring a GitHub repository
- Additional activities—moving, deleting and ignoring files with Git
- Building with branches—how to use feature branches effectively to work on projects. Includes merge types, merge conflicts and rebasing before merging
- GitHub workflows—using clones, forks, feature branches and pull requests to collaborate effectively via GitHub
- Releasing software—release tags, release branches and release workflows
- How to undo anything—learn a range of powerful techniques, from git commit—amend through revert, reset, rebase—interactive and the famed reflog!
About the Instructor
Peter Bell is a contract member of the GitHub training team and presents internationally on using Git and GitHub effectively. He’s also the co-founder of CTO School and the startup CTO Summit and is the author of Git Distilled, to be published by Pearson in late 2014.
What You Will Learn
- Starting with creating your first Git repository and committing code, you learn the key concepts and features that will allow you to quickly set up and use Git for your own projects
- You are introduced to branching and learn how to merge a branch, create a fast forward merge, and use recursive merges
- You also learn how to collaborate via GitHub by cloning a repository, forking a repository, or contributing to a project via a pull request from a fork
- In addition, you are introduced to the basics of Git internals to get a sense for how Git works under the hood.
Who Should Take This Course
- You will need to have an up-to-date version of Git installed on your computer and have a GitHub user account and password.
- You should also be comfortable using a terminal window/command line.
Table of Contents
Lesson 1: Configuring Git
- Three levels of configuration
- Basic configuration settings
- Configuring line endings
- Configuring aliases
Lesson 2: Getting Started with Git
- Creating your first Git repository
- Committing in Git
- Understanding a Git commit
- The benefits of the staging area
- Git log for viewing history
Lesson 3: Getting Started with GitHub
- Creating a repository in GitHub
- Uploading your repo to GitHub
- Creating a repository after starting to code
- Creating the first commit
Lesson 4: Files in Git—Renaming, Deleting and Ignoring
- How to rename a file in Git
- Deleting a file in Git
- Ignoring files using a .gitignore file
- Global gitexcludes and other Git ignore options
- Git ignore precedence
- Git commit -a
Lesson 5: Branching, Merging and Rebasing
- Introducing branching
- Merging a branch
- Creating a fast forward merge
- Introducing recursive merges
- “No fast forward” recursive merges
- Resolving merge conflicts
- Another merge conflict example
- Git Diff
- Introducing rebasing
- Rebasing a branch
- Handling rebase conflicts
Lesson 6: Git Internals
- Introducing “Git under the hood”
- Exploring the object store
- cat-file to explore object contents
- The benefits of Git’s use of SHA1 hashes
- Git as a content store (how many new hashes)
- Understanding remotes and their configuration
- Configuring your push default
- Fetch versus pull
- Merge versus rebase on pull
Lesson 7: Collaborating via GitHub
- Cloning a repository
- Forking a repository
- Contributing via a pull request from a fork
- Approving a pull request from a fork
- Use cases for fork based collaboration
- Single repo collaboration directly on master
- Single repo collaboration using feature branches
- Contributing to another feature branch
- Creating a pull request within a single repo
- Collaborating on a pull request
- Merging in a pull request
Lesson 8: Reviewing a Project on GitHub
- Getting an overview of a project on GitHub using the README
- Getting more information about a project
- Introducing issues
- Closing an issue automatically with a commit message
- Viewing project state through pulse and graphs
Lesson 9: Configuring a Project on GitHub
- Basic configuration options and renaming a repo
- GitHub Pages
- Adding collaborators and integrations
- Configuring deploy keys
Lesson 10: Tags and Releases
- Three types of tags
- Release tags versus release branches
- Cherry pick for reusing code across long running release branches
- Git stash for reusing code
- Pushing tags up to GitHub and using releases
Lesson 11: How to Undo Almost Anything Using Git
- Private versus public history and git revert
- Don’t push too often
- Git commit --amend
- Git reset
- Introducing the reflog
- Rebase interactive
- Question 1: Can you create a GitHub repo without using your browser?
- Question 2: What’s the difference between global and system configuration?
- Question 3: When dealing with merge conflict in a large file, how do you find the conflicts?
- Question 4: Does Git show the two full, different versions of a file or just the differences?
- Question 5: Does a merge commit always include all of the files I created on the branch?
- Question 6: Isn’t it dangerous that you can make a bunch of changes to your code by merging in a branch?
- Question 7: Do merges work the same way with merging into integration branches as into master?
- Question 8: How do you handle long running release branches?