University of Illinois at Urbana-Champaign via Coursera
This course covers the essentials of using the version control system Git. You'll be able to create a new Git repo, commit changes, and review the commit history of an existing repo. You'll also learn how to keep your commits organized using tags and branches and you'll master the art of merging changes by crushing those pesky merge conflicts. Oh no! Was a mistake made along the way? Learn how to edit commits, revert changes, or even delete commits.
Why Take This Course? Version control is an incredibly important skill that every developer should master, and Git is one of the most popular version control systems used in the workforce. Whether you're working as a solo developer or working with a team, being able to track the history of a project is paramount. Tracking versions of your code will help you keep a record of progress and allow you to "undo" any blunders that occur along the way. This is incredibly important in a profession where [~96% of developers](http://stackoverflow.com/research/developer-survey-2016#work-teams) say they work on a team of engineers all working on the same code and [~67% of developers](http://stackoverflow.com/research/developer-survey-2016#work-checking-in-code) report having to check-in changes in their code at least once a day.
In this course, you'll learn how important version control is to professional development. You'll install the Git shell command and configure it. You'll use the `git` command to create repositories that are local to your machine. Using this same command, you'll copy existing Git repositories to your computer. You will learn about how important it is to check the status of a repository. You'll track changes to projects using small, focused packages called commits. You'll learn how to navigate existing commits and the importance of providing clear, descriptive commit messages. You'll work on the same project in different situations using branches. Using the `git` command, you'll merge branches together and resolve any merge conflicts if they should arise. Lastly, if there are any issues with commits, you'll learn how to go back in time to alter, reverse, or totally delete commits.
## Lesson 1: Purpose & Terminology
* Learn why developers use version control and discover ways you use version control in your daily life
* Get an overview of essential Git vocabulary
* Configure Git using the command line
## Lesson 2: Create a Git Repo
* Create your first Git repository with `git init`
* Copy an existing Git repository with `git clone`
* Review the current state of a repository with the powerful `git status`
## Lesson 3: Review a Repo's History
* Review a repo's commit history`git log`
* Customize `git log`'s output using command line flags in order to reveal more (or less) information about each commit
* Use the `git show` command to display just one commit
## Lesson 4: Add Commits to a Repo
* Master the Git workflow and make commits to an example project
* Use `git diff` to identify what parts of a file have been changed in a commit
* Learn how to mark files as "untracked" using `.gitignore`
## Lesson 5: Tagging, Branching, and Merging
* Organize your commits with tags and branches
* Jump to particular tags and branches using `git checkout`
* Learn how to merge together changes on different branches and crush those pesky merge conflicts
## Lesson 6: Undoing Changes
* Learn how and when to edit or delete an existing commit
* Use `git commit`'s `--amend` flag to alter the last commit
* Use `git reset` and `git revert` to undo and erase commits
MOOCs stand for Massive Open Online Courses. These arefree online courses from universities around the world (eg. StanfordHarvardMIT) offered to anyone with an internet connection.
How do I register?
To register for a course, click on "Go to Class" button on the course page. This will take you to the providers website where you can register for the course.
How do these MOOCs or free online courses work?
MOOCs are designed for an online audience, teaching primarily through short (5-20 min.) pre recorded video lectures, that you watch on weekly schedule when convenient for you. They also have student discussion forums, homework/assignments, and online quizzes or exams.