Day 1: Understand Git and manage changes transparently
5 topics, Tap to openTap to close
10:00–11:00Version Control and Git Architecture
Version control makes a project's changes, states, and relationships traceable. You distinguish the working directory, staging area, and repository and examine how Git references content as snapshots. A comparison with centralised systems such as SVN clarifies which tasks happen locally and how the distributed model prepares collaboration.
11:00–12:00Configure Git and Create Commits
A repository needs a traceable identity and deliberately selected content. The DevNinjas Dojo, our cloud learning environment, supports installing Git, configuring user.name and user.email and initialising a repository; you then edit files and practise add and commit. With a .gitignore, you exclude generated files and discuss why secrets must stay outside version history regardless of that file.
13:00–14:00Inspect Commits and History
A readable history connects changes with their context. You use log with formatting options, diff, and show to compare commits and working states and mark releases with tag. With blame, you trace the origin of individual lines while distinguishing technical attribution from the underlying reason for a change.
14:00–15:00Branches, Merges, and Conflicts
Branches separate working states, while a merge brings selected developments together again. You create and switch branches with branch and switch, compare fast-forward with 3-way merges, and read the resulting graph. You then create a controlled merge conflict and examine which domain decision Git cannot make during its resolution.
15:00–16:00Remote Repositories and Synchronisation
Remotes connect local histories with repositories available to a team. You clone a GitLab project, distinguish fetch, pull, and push, and trace remote-tracking branches in the commit graph. You then compare controlled integration with a forced push and derive rules for when rewriting shared history puts collaborators at risk.

