Git becomes useful when you can explain the state of a project before you change it and prove what a branch contains afterward. This hands-on course builds that foundation through local repositories, staged snapshots, readable history, branch isolation, and intentional ignore rules.
You will configure commit identity, create repositories from ordinary directories, inspect line-level changes, and move files through Git's working tree, staging area, and commit history. The final challenge applies the workflow to an Nginx configuration: preserve a port-80 baseline while developing a port-443 variant on a separate branch.
What You Will Learn
- Verify Git and configure a global commit name and email
- Initialize a local repository and identify its hidden
.gitmetadata - Distinguish untracked, modified, staged, committed, and ignored file states
- Review edits with
git diffbefore staging and committing them - Read full and condensed history with
git logandgit log --oneline - Create, switch, and commit on a feature branch while preserving branch isolation
- Write and verify a
*.logignore rule with.gitignoreandgit check-ignore
Who This Course Is For
This intermediate course is for Linux users, developers, system administrators, and DevOps learners who want a reliable local Git workflow for code or configuration files. It is especially useful if staging, commit history, or the relationship between branches and working-tree files still feels unclear.
Prerequisites: Basic Linux terminal and file-editing skills. No previous Git experience or online hosting account is required.
Learning environment: A LabEx Linux terminal with Git and prepared local repositories; all work stays on the lab machine.
Frequently Asked Questions
Does this course cover GitHub or remote collaboration?
No. The course focuses entirely on local Git: configuration, initialization, status, staging, commits, logs, branches, and ignore rules. It does not configure remotes or use clone, fetch, pull, or push.
Will I merge the feature branch or resolve conflicts?
No. You create and commit on isolated branches, then switch back to the main branch to prove its files remain unchanged. Merging, rebasing, and conflict resolution are beyond this course's scope.
What does the final repository demonstrate?
The main branch retains the committed Nginx baseline with listen 80;. The secure_mode branch contains committed *.log ignore rules and a committed change to listen 443;, demonstrating that related work can advance without altering the baseline branch.





