Introduction
- Git in comparison with other version control systems
- Basic concepts of Git: Commits, branches, repositories
- Hashes and distributed commits
- Installation, overview of Git clients, Git integration in IDEs
- Background: What are Merkle trees?
Practical work with Git
- Configuration of Git
- Creating Git repositories, cloning, structure of a .git folder
- Staging and commits, status of files
- Version log, checkout of older versions
- Calculating differences, undoing changes, reset and revert
Branching und remotes
- Merging branches, conflict solutions, fast-forward vs. merge commits
- Merge von Branches, Konfliktlösungen, Fast-Forward vs. Merge-Commits
- Remote repositories and remote branches
- Synchronization with push, fetch and pull
Enhanced strategies
- Cherry picking of commits
- Rebasing, rebase vs. merge: Advantages, disadvantages, typical cases from practice
- Branch models for larger projects
- Tools: Stashing, git blame, git reflog, git bisect
- Overview: github, bitbucket and gitlab for teams