Version Control with Git
Coursera
The Version Control with Git course provides you with a solid, hands-on foundation for understanding the Git version control system. Git is open source software originally created by Linus Torvalds. Git manages team files for large and small projects. This allows the team to continuously improve its product. It is used by most major technology companies, and is assumed knowledge for many modern programming and IT jobs. It is a core component of DevOps, continuous delivery pipelines and cloud-native computing. You could also use Git to manage the many continuously improving revisions of that book that you are writing. In this course, you will not learn everything there is to know about Git, but you will build a strong conceptual understanding of the technology, and afterward will be able to confidently dig deeper on any topic that interests you. This course assumes no previous knowledge of Git, but if you do have experience with it, you may find this course to be both useful and challenging. This is especially true if you currently "know just enough Git to be dangerous". There are two paths in this course. Both rely heavily on hands-on labs. One path assumes that you have experience using a command line interface, and the other path uses the Sourcetree graphical client. If you are not experienced with a command line, we highly suggest that you go through the Sourcetree path. Eventually, you might want to go through both paths, so that you can decide which tool to use for specific tasks. Besides, repetition is good for learning :) You can watch the videos and take the quizzes from your phone if you want, but the hands-on labs require you to have a Windows or Mac computer. If you use the command line path through the course, you can also use Linux. This course uses Bitbucket (bitbucket.org) as the hosted provider for remote Git repositories. Bitbucket is free for teams of up to 5 people, including private repositories. However, most of the knowledge that you gain in this course applies to Git itself, and you can apply this knowledge to other hosted Git providers (such as GitHub). This course tries to be as concise as possible. It will probably take you about 5-10 hours to go through one of the two paths, but your mileage may vary.
More resources on Version Control
Git Official Documentation
The reference hub maintained by the Git project itself: complete command manual pages, the Pro Git book, videos and release notes. Use it to check exact flag behaviour and semantics when a command does not do what you expected.
Git Tutorial for Beginners
Corey Schafer works through Git from the command line: initialising or cloning a repository, staging and committing, inspecting history, branching and merging, and syncing with a remote. Leaves you comfortable with the everyday commands.
Atlassian Git Tutorials
Atlassian's structured guide set covering the basics, branching models, merging versus rebasing, and collaboration workflows such as Gitflow and forking, with diagrams throughout. Useful for deciding how a team should organise branches and reviews.
Pro Git Book (Official)
The Git project's official book by Scott Chacon and Ben Straub, free online in full. Moves from basic commands through branching, remotes, rebasing, hooks and Git's internal object model. The standard reference for why Git behaves as it does.
Git and GitHub for Beginners - Crash Course
freeCodeCamp's introduction, taught by Gwen Faraday, covering repositories, commits, branches, merge conflicts, pull requests and forking. By the end you can set up a repository and contribute changes through GitHub's collaboration flow.
Introduction to Git and GitHub
In this course, you’ll learn how to keep track of the different versions of your code and configuration files using a popular version control system (VCS) called Git. We'll also go through how to set up an account with a service called GitHub so that you can create your very own remote repositories to store your code and configuration. Throughout this course, you'll learn about Git's core functionality so you can understand how and why it’s used in organizations. We’ll look into both basic and more advanced features, like branches and merging. We'll demonstrate how having a working knowledge of a VCS like Git can be a lifesaver in emergency situations or when debugging. And then we'll explore how to use a VCS to work with others through remote repositories, like the ones provided by GitHub. By the end of this course, you'll be able to store your code's history in Git and collaborate with others in GitHub, where you’ll also start creating your own portfolio! In order to follow along and complete the assessments, you’ll need a computer where you can install Git or ask your administrator to install it for you.