In today’s world, where people no longer need to be physically in the same room to complete projects, a powerful, distributed source control system is the solution. GitHub has made it easier for developers to continuously collaborate using Git.
This course is intended for teams wanting to collaborate using GitHub, and for developers wanting to improve their Git skills. You will start the course by learning to perform both basic and advanced Git commands. Then, you will learn best practices for using GitHub as a platform to develop code collaboratively. By the end of this course, you will know how to manage large scaled projects using Git and GitHub.
Skills Gained
In this Git and Github Training Course, You Will Learn How to:
- Install Git on Windows, Mac, and Linux
- Perform Basic Git Commands like Intitlizating a Repository, Creating a Branch and Adding Commits
- Perform Advanced Git Commands like Rebasing, Cherry-Picking, Aliases, and Hooks
- Set Organization Accounts to Combine Multiple GitHub Users into an Organization
- Split up Organization Accounts into Multiple Teams
- Create a Repository and Set up Permissions
- Make Pull Requests Work, Create a Branch, Push Commits, Create the Pull Request, Have Someone Approve, and Merge
- Manage Large-Scaled Projects Using Git and GitHub
Who Can Benefit
This course is intended for teams wanting to collaborate using GitHub, and for developers wanting to improve their Git skills.
Prerequisites
To get the most from this course, students should have experience with a programming language and should be familiar with navigating the command line.
Additionally, although it is not mandatory, students who have completed the self-paced Fundamentals of DevOps eLearning course have found it very helpful when completing this course.
Course Outline
Part 1: Git – Basic and Advance Commands
Getting started with Git
- Installing Git on Windows
- Installing Git on Mac
- Installing Git on Linux
Basic Git commands
- Initializing a repository
- Adding commits
- Adding a remote
- Pushing to the remote
- Pulling from the remote
- Creating a branch
- Merging
Advanced Git commands
- Commit --amend
- Rebasing
- Interactive rebasing
- Merging fast-forward
- Normal merging vs fast-forward merging.
- Cherry-picking
- Bisect
- Aliases
- Hooks
- Git hooks allow you to run scripts before or after certain Git actions (e.g., modify the commit message prior to committing).
Part 2: GitHub – Team and Enterprise Applications
Getting started with GitHub
- Signing up
- Two-factor authentication
- Searching GitHub
- Starring repositories
- Following people
- Watching repositories
- Commit email addresses
- Notifications
Options for teams
- Organization accounts
- Organization accounts allow you to combine multiple GitHub users into an organization. A single GitHub user can be a member of several organizations. A repository can also be owned by an organization, instead of a single user.
- Teams
- GitHub Organizations can be split up into multiple teams, to mirror the departments of your company. This allows easier control when setting up permissions for users to your repositories.
- Paid plans
- GitHub offers a lot of functionality for free. But companies often need more. The paid plans allow things like private repositories, fine-grained access control, extra support, etc.
- Repositories
- Creating a repository
- Setting permissions
Working In Teams
- GitHub Flow
- GitHub Flow is an easy branching strategy. It starts from a master branch and creates only feature branches from there. The feature branches only get merged into the master branch when approved and ready for release. This allows a team to have a rapid cadence of releases, but also creates some requirements that need to be addressed. For example, you will need a good CI/CD pipeline, a business that accepts rapid releases, possibly a good feature toggle system, etc.
- GitFlow
- GitFlow is a more complex branching strategy but allows for a more secure development and deployment pace. It's often more fit for larger enterprises. Luckily, there are CLI plugins and GUI tools that support GitFlow and make it easy to work with. This way, developers don't have to remember the specific commands and branching flows.
- Working With Pull Requests
- This section will show how pull requests work, create a branch, push some commits, create the pull request, have someone approve and merge.
- Documentation
- Readme
- Markdown files
- Wiki
- GitHub pages
- Issues
- Creating an issue
- Referencing other issues
- Referencing commit
- Commenting on issues
- Labeling issues
- Closing issues
- Projects
- GitHub projects give teams a Kanban board to organize and visualize their work. It's a step up from GitHub Issues.
- Releases
- Git allows developers to create tags in their repositories. In GitHub, you can easily link these tags to "Releases". A release can contain release notes, providing a nice overview of what changed over time.