Loading README.md +68 −0 Original line number Diff line number Diff line # Mastering Git course  6 weeks course on mastering git. ## About the course Git is a powerful and easy to learn software which is mainly used for collaborative software development. During this course you will learn unique benefits and concepts of [Git](https://git-scm.com/) as well as its core features via extensive examples and hands-on exercises. We hope you will develop the joy of working with it. This course doesn’t require any prior knowledge of Git and is perfect for anyone who wants a jump start in learning it. If you already have some experience with Git, then this course will make you an expert, since it gives a deep look at the fundamental commands. ## Objective During this course you will learn unique benefits and concepts of Git as well as its core features via extensive examples, hands-on exercises and mandatory homework. The emphasis of the course is to prepare you for working on group community upstream projects in enterprise. ## Lectors * Irina Gulina (Senior Software Quality Engineer) * Tomáš Tomeček (Senior Principal Software Engineer) ## Prerequisites * Be comfortable in a command-line environment. * Understand basic programming concepts. * Understand basic Computer Science concepts. * Linux-based operating system is a big plus. ## Sylabus * Introduction of this course, organization, motivation, intro to VCS and git * How did developers manage code before version control and why was it bad? * Definition of version control and what can you do with it. * Introduction to git. * Installing Git on your workstation (focus on Linux, other OS best effort) * The basics of Git Workflow and how to start with git * The most essential functionality: Cloning Repositories. * Basics of git: index, working tree, local repository, remote repository, configuration of git repositories, securing repositories with SSH keys. * How does branching work in git * Art of commits. * Best practices for branching. * Git tags: why types there, how to use them and what’s their use case? * Stash: put your current work on a shelf and restore it later. * Moving and merging code: what to do when someone wants to contribute, how to accept it. * Fixing mistakes * How to revert a change? * Look into history what has changed, audit changes done in a repository. * Who has changed this file and why and when? * Resolving conflicts between changes. * The holy grail of git: interactive rebase. You *need to* understand this. * Different ways to find and undo changes made to a Git project and when to use them. * Working as a team with a git repository * Deep dive into remotes. What’s upstream and a fork? * How to work with multiple remote repositories? * Moving changes between remote repositories: push, pull and fetch * How can I check out someone else’s changes locally? * The golden rule of push. * Tracking remote repositories. * Git Etiquette * How to write a good commit message? * Best practices for contributing to open source projects. * How to submit a pull request? * How to review a pull request? * You need to know how to use force-push properly. * Git features and common open source git workflows * How to create an issue in an open source project? * Git interfaces and integrations * More content based on students' feedback Loading
README.md +68 −0 Original line number Diff line number Diff line # Mastering Git course  6 weeks course on mastering git. ## About the course Git is a powerful and easy to learn software which is mainly used for collaborative software development. During this course you will learn unique benefits and concepts of [Git](https://git-scm.com/) as well as its core features via extensive examples and hands-on exercises. We hope you will develop the joy of working with it. This course doesn’t require any prior knowledge of Git and is perfect for anyone who wants a jump start in learning it. If you already have some experience with Git, then this course will make you an expert, since it gives a deep look at the fundamental commands. ## Objective During this course you will learn unique benefits and concepts of Git as well as its core features via extensive examples, hands-on exercises and mandatory homework. The emphasis of the course is to prepare you for working on group community upstream projects in enterprise. ## Lectors * Irina Gulina (Senior Software Quality Engineer) * Tomáš Tomeček (Senior Principal Software Engineer) ## Prerequisites * Be comfortable in a command-line environment. * Understand basic programming concepts. * Understand basic Computer Science concepts. * Linux-based operating system is a big plus. ## Sylabus * Introduction of this course, organization, motivation, intro to VCS and git * How did developers manage code before version control and why was it bad? * Definition of version control and what can you do with it. * Introduction to git. * Installing Git on your workstation (focus on Linux, other OS best effort) * The basics of Git Workflow and how to start with git * The most essential functionality: Cloning Repositories. * Basics of git: index, working tree, local repository, remote repository, configuration of git repositories, securing repositories with SSH keys. * How does branching work in git * Art of commits. * Best practices for branching. * Git tags: why types there, how to use them and what’s their use case? * Stash: put your current work on a shelf and restore it later. * Moving and merging code: what to do when someone wants to contribute, how to accept it. * Fixing mistakes * How to revert a change? * Look into history what has changed, audit changes done in a repository. * Who has changed this file and why and when? * Resolving conflicts between changes. * The holy grail of git: interactive rebase. You *need to* understand this. * Different ways to find and undo changes made to a Git project and when to use them. * Working as a team with a git repository * Deep dive into remotes. What’s upstream and a fork? * How to work with multiple remote repositories? * Moving changes between remote repositories: push, pull and fetch * How can I check out someone else’s changes locally? * The golden rule of push. * Tracking remote repositories. * Git Etiquette * How to write a good commit message? * Best practices for contributing to open source projects. * How to submit a pull request? * How to review a pull request? * You need to know how to use force-push properly. * Git features and common open source git workflows * How to create an issue in an open source project? * Git interfaces and integrations * More content based on students' feedback