Project: Personal Learning Repository
Introduction
This project walks through a complete solo workflow: initialize a repo, commit learning notes, branch for experiments, merge back, tag a milestone, and push to GitHub with a proper .gitignore. By the end you will have a portfolio-ready repository that demonstrates every core Git skill from this track.
Prerequisites
- Installing Git through Tags and Releases
- GitHub account with SSH or HTTPS auth configured
- Node or Java project template in mind (examples show Node)
Goal
Build learning-notes repo containing:
- README with your goals
- Small code sample (Node or Java)
- Feature branch with one extra file
- Tag
v0.1.0 - Remote on GitHub with
.gitignore
Step 1: Initialize and First Commit
mkdir learning-notes
cd learning-notes
git init
git switch -c mainCreate README:
cat > README.md << 'EOF'
# Learning Notes
Personal sandbox for Git practice and hello_code tutorials.
EOFNode sample (optional):
mkdir src
echo "console.log('learning');" > src/index.js
echo "node_modules/" > .gitignore
echo "dist/" >> .gitignoreConfigure identity if needed, then:
git add .
git commit -m "Initial commit with README and sample script"Verify:
git log --oneline
git statusStep 2: Feature Branch and Merge
git switch -c feature/add-notesAdd content:
mkdir docs
echo "# Day 1\nLearned git init and commit." > docs/day1.md
git add docs/day1.md
git commit -m "Add day 1 learning notes"Merge to main:
git switch main
git merge feature/add-notes
git branch -d feature/add-notes
git log --oneline --graphStep 3: Tag Milestone
git tag -a v0.1.0 -m "First learning milestone"
git show v0.1.0Step 4: Create GitHub Remote and Push
Create empty repo learning-notes on GitHub (no auto README if you already have local commits).
git remote add origin git@github.com:YOUR_USER/learning-notes.git
git push -u origin main
git push origin v0.1.0Confirm on GitHub: commits, tag, and .gitignore present.
Step 5: Simulate Daily Habit
Practice loop:
git pull
git switch -c feature/day2
# edit files
git add .
git commit -m "docs: add day 2 notes"
git push -u origin feature/day2Open PR on GitHub—even solo repos benefit from PR habit—or merge locally if practicing offline.
Checklist
- At least 3 commits on
main - One merged feature branch visible in
git log --graph -
.gitignoreexcludesnode_modules/ortarget/ - Tag
v0.1.0on remote - README explains project purpose
Extensions
- Add Maven
pom.xmlinstead of Node—ignoretarget/ - Enable GitHub Actions from Git and CI/CD
- Write CHANGELOG for tag—preview Project: Release and CHANGELOG
FAQ
Push rejected on first push?
Remote not empty—use empty repo or pull --allow-unrelated-histories.
Forgot .gitignore before commit?
Add file, git rm -r --cached node_modules if already tracked.
Private or public repo?
Public fine for learning notes without secrets; private for employer code.
Delete and restart?
Keep folder, remove .git, git init—or delete remote repo and re-push.
Tag not on GitHub?
Run git push origin v0.1.0 explicitly.
Solo PR worth it?
Yes—builds muscle memory for team work in next project.