Office-Ready Git · provided by Tokenova
Git cheat sheet
The same task in the terminal, VS Code and GitHub Desktop. Every line links back to the day that teaches it.
PowerShell tip: put HEAD@{1} and stash@{0} in single quotes. Press q to leave a long log or diff.
To print this page, press Ctrl+P.
Online at https://learn.trytokenova.com/git/cheatsheet/
Setup
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Check which Git version you have | git --version | Use the terminal | Use the terminal | Day 1 |
| Set the name on your commits | git config --global user.name "Your Name" | Use the terminal | File › Options… › Git | Day 1 |
| Set the email on your commits | git config --global user.email "you@example.com" | Use the terminal | File › Options… › Git | Day 1 |
| Start new repositories on main | git config --global init.defaultBranch main | Use the terminal | File › Options… › Git | Day 1 |
| Read one global setting | git config --global --get core.editor | Use the terminal | Use the terminal | Day 1 |
| Show one setting and the file it comes from | git config --show-origin --get init.defaultBranch | Use the terminal | Use the terminal | Day 1 |
| Check your laptop's Git setup | .\lab doctor | Run it in the terminal panel | Use the terminal | Day 1 |
| Always prune when fetching (a Day 1 course setting) | git config --global fetch.prune true | git.pruneOnFetch | Not needed: Desktop's fetch prunes | Day 8 |
| Make plain git pull rebase instead of merge (a Day 1 course setting) | git config --global pull.rebase true | Use the terminal | Use the terminal | Day 10 |
| Allow only fast-forward pulls (if that's your team's rule) | git config --global pull.ff only | Use the terminal | Use the terminal | Day 10 |
| See a setting's value and which file sets it | git config --show-origin --get pull.rebase | Use the terminal | Use the terminal | Day 10 |
| Make VS Code the editor Git opens | git config --global core.editor "code --wait" | Use the terminal | File › Options… › Integrations › External editor (only for Desktop's own Open in editor button) | Reference |
| See all settings and where each comes from | git config --list --show-origin | Use the terminal | Use the terminal | Reference |
| Get help for any command | git help merge | Use the terminal | Use the terminal | Reference |
| Quick options summary for a command | git merge -h | Use the terminal | Use the terminal | Reference |
| Leave the scrolling log or diff view | q | Press q in the terminal | Not needed | Reference |
Basics
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Turn a folder into a repository | git init | Command Palette › Git: Initialize Repository | Use the terminal | Day 2 |
| See what's changed and what's staged | git status | View › Source Control | Changes | Day 2 |
| Short status, one line per file | git status -s | View › Source Control | Changes | Day 2 |
| Stage one file | git add transform.py | Command Palette › Git: Stage Changes | Tick the file in Changes | Day 2 |
| Stage every change (read git status first) | git add . | Command Palette › Git: Stage All Changes | Tick every file in Changes | Day 2 |
| Commit what's staged | git commit -m "Add .gitignore" | Commit | Commit n files to branch | Day 2 |
| Unstage a file, keep the edits | git restore --staged .env | Command Palette › Git: Unstage Changes | Untick the file in Changes | Day 2 |
| Unstage everything, keep the files | git reset | Command Palette › Git: Unstage All Changes | Untick every file in Changes | Day 2 |
| Throw away unstaged edits to a file | git restore report.py | Command Palette › Git: Discard Changes | Discard changes… | Day 2 |
| Stop tracking a file but keep it on disk | git rm --cached .env | Use the terminal | Use the terminal | Day 2 |
Ignore
History
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Show history, one line per commit | git log --oneline | Graph | History | Day 3 |
| Create the git lg alias (once per computer; Day 1 step 5 did it) | git config --global alias.lg "log --oneline --graph --decorate --all" | Use the terminal | Use the terminal | Day 3 |
| Show the whole graph, every branch | git lg | Graph | History (one branch at a time) | Day 3 |
| Show one commit and its changes | git show 3636402 | Click the commit in Graph | Click the commit in History | Day 3 |
| Compare two commits | git diff 3636402 e9797de | Use the terminal | Use the terminal | Day 3 |
| List the commits that changed a file | git log --oneline -- report.py | Timeline | Use the terminal | Day 3 |
| Find the commit that added a file | git log --diff-filter=A --oneline -- report.py | Use the terminal | Use the terminal | Day 3 |
| Find commits that added or removed some text | git log -S "0.08" --oneline | Use the terminal | Use the terminal | Day 3 |
| List one person's commits | git log --author="Alex" --oneline | Use the terminal | Use the terminal | Day 3 |
| See who last changed each line | git blame transform.py | Command Palette › Git: Toggle Git Blame Editor Decoration | Use the terminal | Day 3 |
Commit
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Commit with a subject and a body | git commit -m "Subject" -m "Why it was needed" | Subject, blank line, body in the message box | Summary (required) and Description | Day 3 |
| Fix the message of your last (unpushed) commit | git commit --amend -m "Restore the 8% sales tax rate" | Command Palette › Git: Commit (Amend) | Amend commit… | Day 3 |
| Add a forgotten file to your last (unpushed) commit | git commit --amend --no-edit | Stage the file, then Command Palette › Git: Commit (Amend) | Amend commit… | Day 3 |
| Park unfinished work in a commit and back it up | git commit -am "WIP: CSV export of the report" | Commit, then Publish Branch | Commit n files to branch, then Publish branch | Day 14 |
Branch
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Create a branch and switch to it | git switch -c feature/x | Command Palette › Git: Create Branch... | Branch › New branch… | Day 4 |
| Switch to another branch | git switch main | Command Palette › Git: Checkout to... or branch | Current branch | Day 4 |
| Go back to the previous branch | git switch - | Use the terminal | Use the terminal | Day 4 |
| List your branches | git branch | branch | Current branch | Day 4 |
| Delete a branch that isn't merged (throws its work away) | git branch -D feature/x | Command Palette › Git: Delete Branch... | Branch › Delete… | Day 4 |
| Visit an old commit (detached HEAD) | git switch --detach HEAD~2 | Use the terminal | Checkout commit | Day 4 |
| Keep commits made in detached HEAD | git switch -c rescue/header-fix | Command Palette › Git: Create Branch... | Create branch from commit | Day 4 |
| Delete a branch you've merged | git branch -d feature/x | Command Palette › Git: Delete Branch... | Branch › Delete… | Day 5 |
| See what a branch has that main doesn't | git log main..docs/contributing-tips | Use the terminal | Branch › Compare to branch | Day 8 |
| Work on a teammate's branch (linked to GitHub's) | git switch alex/fix-rounding | Command Palette › Git: Checkout to..., pick origin/alex/fix-rounding | Current branch | Day 10 |
| Copy one commit onto the current branch | git cherry-pick 843a926 | Command Palette › Git: Cherry Pick... | Cherry-pick commit… | Day 11 |
| See each branch's GitHub partner, and which ones are gone | git branch -vv | Use the terminal | Use the terminal | Day 14 |
Stash
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Shelve uncommitted changes | git stash push -m "currency wip" | Command Palette › Git: Stash | Branch › Stash all changes | Day 4 |
| Shelve changes including new files | git stash push -u -m "currency wip" | Command Palette › Git: Stash (Include Untracked) | Use the terminal | Day 4 |
| See what's on the stash shelf | git stash list | Command Palette › Git: Pop Stash... lists them | Stashed Changes | Day 4 |
| Bring back the newest stash | git stash pop | Command Palette › Git: Pop Stash... | Restore | Day 4 |
| Peek inside a stash | git stash show -p 'stash@{0}' | Use the terminal | View › Show stashed changes | Day 4 |
Merge
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Merge a branch into the one you're on | git merge feature/x | Command Palette › Git: Merge... | Branch › Merge into current branch… | Day 5 |
| Merge only if it can fast-forward | git merge --ff-only feature/x | Use the terminal | Use the terminal | Day 5 |
| Always create a merge commit | git merge --no-ff feature/x | Use the terminal | Use the terminal | Day 5 |
Conflict
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| See which files are conflicted | git status | View › Source Control, under Merge Changes | The Resolve conflicts before Merge dialog | Day 5 |
| Mark a conflicted file as resolved | git add transform.py | Command Palette › Git: Stage Changes | Automatic once the markers are gone | Day 5 |
| Finish a merge after resolving | git commit --no-edit | Continue | Continue merge | Day 5 |
| Cancel a merge in progress | git merge --abort | Command Palette › Git: Abort Merge | Abort merge | Day 5 |
Remote
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Clone a repository | git clone https://github.com/acme/invoice-pipeline.git | Command Palette › Git: Clone | File › Clone repository… | Day 6 |
| See where origin points | git remote -v | Use the terminal | Repository › Repository settings… | Day 6 |
| List local and remote-tracking branches | git branch -a | Command Palette › Git: Checkout to... | Current branch | Day 6 |
| Download news from GitHub without changing your work | git fetch | Command Palette › Git: Fetch | Fetch origin | Day 6 |
| Connect a local repo to a GitHub repo | git remote add origin https://github.com/you/repo.git | Command Palette › Git: Add Remote... | Publish repository (creates the GitHub repo too) | Day 7 |
| See the remote's URL | git remote -v | Use the terminal | Repository › Repository settings… | Day 7 |
| Switch a remote from HTTPS to SSH | git remote set-url origin git@github.com:you/repo.git | Use the terminal | Repository › Repository settings… | Day 7 |
| Add the original repository as a remote | git remote add upstream https://github.com/acme/invoice-pipeline.git | Command Palette › Git: Add Remote... | Added for you when you clone a fork | Bonus B3 |
| List your remotes | git remote -v | Use the terminal | Use the terminal | Bonus B3 |
| Download the original's new commits | git fetch upstream | Command Palette › Git: Fetch, then pick upstream | Fetch origin | Bonus B3 |
Pull
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Bring GitHub's new commits into your branch | git pull | Command Palette › Git: Pull | Pull origin | Day 6 |
| Pull and replay your commits on top (straight line) | git pull --rebase | Command Palette › Git: Pull (Rebase) | Pull origin while pull.rebase is true, as on your laptop | Day 6 |
| Pull with a merge commit, whatever your settings say | git pull --no-rebase | Command Palette › Git: Fetch, then Command Palette › Git: Merge... and pick origin/main | Use the terminal | Day 6 |
| Join an unrelated GitHub history once | git pull --no-rebase --allow-unrelated-histories origin main | Use the terminal | Use the terminal | Day 7 |
Push
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Send your commits to GitHub | git push | Command Palette › Git: Push or Sync Changes | Push origin | Day 6 |
| Publish a new branch and link it | git push -u origin feature/7-supplier-filter | Publish Branch | Publish branch | Day 6 |
| List commits you haven't pushed yet | git log --oneline '@{u}..HEAD' | Graph | History | Day 6 |
| First push of a branch, and link it to origin | git push -u origin main | Publish Branch | Publish branch | Day 7 |
| Push every local branch and link each one | git push -u origin --all | Use the terminal | Use the terminal | Day 7 |
| Force-push safely after a rebase | git push --force-with-lease --force-if-includes | Command Palette › Git: Push (Force) (needs git.allowForcePush) | Force push origin | Day 10 |
| List commits that are on no remote (unpushed) | git log --branches --not --remotes --oneline | Use the terminal | Push origin shows how many commits are waiting on the current branch | Day 14 |
| Publish a rewritten branch of your own | git push --force-with-lease | Command Palette › Git: Push (Force) | Force push origin | Bonus B1 |
Auth
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Test your SSH key with GitHub | ssh -T git@github.com | Use the terminal | Use the terminal | Day 7 |
Clone
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Clone into a folder you choose | git clone https://github.com/you/repo.git playground\team\repo | Command Palette › Git: Clone | File › Clone repository… | Day 7 |
Pull requests
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Push a new branch and link it (before opening a PR) | git push -u origin docs/contributing-tips | Publish Branch | Publish branch | Day 8 |
| Open a pull request | git push -u origin docs/contributing-tips | Push, then use GitHub.com: Compare & pull request | Branch › Create pull request | Day 8 |
| Sync main after a merge and drop deleted branches | git pull --prune | Command Palette › Git: Fetch (Prune), then Command Palette › Git: Pull | Fetch origin (prunes), then Pull origin | Day 8 |
| Delete a branch whose PR was squash-merged | git branch -D docs/contributing-tips | Command Palette › Git: Delete Branch... | Branch › Delete… | Day 8 |
| Open a pull request from the terminal | gh pr create --fill | Use the terminal | Branch › Create pull request | Bonus B5 |
| See your pull requests, checks and reviews | gh pr status | Use the terminal | Use the terminal | Bonus B5 |
| Test a teammate's pull request locally | gh pr checkout 12 | Use the terminal | Use the terminal | Bonus B5 |
| Open this branch's pull request in the browser | gh pr view --web | Use the terminal | Branch › Create pull request (it reads View pull request on GitHub once a PR exists) | Bonus B5 |
| Squash-merge a pull request and delete its branch | gh pr merge --squash --delete-branch | Use the terminal | Use the terminal | Bonus B5 |
Sync
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Remove origin/... bookmarks of branches deleted on GitHub | git fetch --prune | Command Palette › Git: Fetch (Prune) | Fetch origin | Day 8 |
| Pull, with your unpushed commits replayed on top | git pull --rebase | Command Palette › Git: Pull (Rebase) | Pull origin (with rebase while pull.rebase is true) | Day 10 |
| Bring the latest main into your branch (merge) | git merge origin/main | Command Palette › Git: Merge... | Branch › Update from branch | Day 10 |
| Rebase your branch onto the latest main | git rebase origin/main | Command Palette › Git: Rebase Branch... | Branch › Rebase current branch… | Day 10 |
| See what GitHub's branch has that yours doesn't | git log --format="%h %an %s" HEAD..origin/feature/export-csv | Use the terminal | Use the terminal | Day 10 |
| Copy one commit onto your branch | git cherry-pick ba23084 | Command Palette › Git: Cherry Pick... | Cherry-pick commit… | Day 10 |
CI
Review
Rebase
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Continue a rebase after fixing a conflict | git rebase --continue | Continue | The continue button in the conflicts dialog | Day 10 |
| Drop the commit a rebase stopped on | git rebase --skip | Use the terminal | Use the terminal | Day 10 |
| Cancel a rebase in progress | git rebase --abort | Command Palette › Git: Abort Rebase | The abort button in the conflicts dialog | Day 10 |
| Tidy your branch's commits (squash, reword, reorder, drop) | git rebase -i main | Run it in the terminal; the todo list opens as a tab | Drag commits in History | Bonus B1 |
| Commit a fix meant for an earlier commit | git commit --fixup dd82378 | Use the terminal | Use the terminal | Bonus B1 |
| Fold fixup! commits into their targets | git rebase -i --autosquash main | Use the terminal | Use the terminal | Bonus B1 |
| Continue after fixing a stop in a rebase | git rebase --continue | Continue | Use the terminal | Bonus B1 |
| Cancel a rebase in progress | git rebase --abort | Use the terminal | Use the terminal | Bonus B1 |
| Undo a finished rebase | git reset --hard ORIG_HEAD | Use the terminal | Use the terminal | Bonus B1 |
Undo
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Undo the last commit, keep its changes staged | git reset --soft HEAD~1 | Command Palette › Git: Undo Last Commit | Undo | Day 11 |
| Undo the last commit, keep its changes unstaged | git reset HEAD~1 | Use the terminal | Reset to commit… | Day 11 |
| Undo the last commit and throw its changes away | git reset --hard HEAD~1 | Use the terminal | Use the terminal | Day 11 |
| Undo a pushed commit with a new commit | git revert 700d044 | Use the terminal | Revert changes in commit | Day 11 |
| Undo a pushed merge | git revert -m 1 a7ecd9b | Use the terminal | Use the terminal | Day 11 |
| See everywhere HEAD has been | git reflog | Use the terminal | Use the terminal | Day 11 |
| Go back to where you were before the last move | git reset --hard 'HEAD@{1}' | Use the terminal | Use the terminal | Day 11 |
| Save a lost commit on a new branch | git branch rescue/report-work 'HEAD@{1}' | Use the terminal | Create branch from commit (if it's still in History) | Day 11 |
| Move unpushed commits from main to a new branch | git branch feature/csv-export; git reset --hard origin/main | Use the terminal | Branch › New branch…, then Reset to commit… on main | Day 11 |
| Preview which untracked files git clean would delete | git clean -nd | Use the terminal | Use the terminal | Day 11 |
| Delete untracked files and folders | git clean -fd | Use the terminal | Discard changes… (to the Recycle Bin) | Day 11 |
Data
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| See which rule ignores a file | git check-ignore -v .env | Use the terminal | Use the terminal | Day 12 |
| Add a file even though it's ignored | git add -f data/export.parquet | Use the terminal | Use the terminal | Day 12 |
| Stop tracking a file but keep it on disk | git rm --cached .env | Use the terminal, then Command Palette › Git: Add to .gitignore | Use the terminal | Day 12 |
| Clear a notebook's outputs | python -m nbstripout notebooks/explore.ipynb | Clear All Outputs, then save | Clear them in VS Code first | Day 12 |
| Strip notebook outputs automatically on every commit | nbstripout --install --attributes .gitattributes | Use the terminal (after pip install nbstripout) | Use the terminal | Day 12 |
| Keep one whole side of a conflicted file | git restore --theirs notebooks/explore.ipynb | Use the terminal | Use the modified file from branch | Day 12 |
| Undo the last commit (not pushed), keep its changes staged | git reset --soft HEAD~1 | Command Palette › Git: Undo Last Commit | Undo | Day 12 |
| Set up Git LFS (once per computer) | git lfs install | Use the terminal | Use the terminal | Day 12 |
| Store a file type with Git LFS | git lfs track "*.parquet" | Use the terminal | Use the terminal | Day 12 |
| List the files stored in LFS | git lfs ls-files | Use the terminal | Use the terminal | Day 12 |
| Diff without line-ending noise | git diff --ignore-cr-at-eol | Use the terminal | Use the terminal | Day 12 |
| Re-apply .gitattributes line-ending rules to every file | git add --renormalize . | Use the terminal | Use the terminal | Day 12 |
Release
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Create an annotated (release) tag | git tag -a v1.0.1 -m "Fix tax rounding" | Command Palette › Git: Create Tag... (type a message) | Create Tag… | Day 13 |
| Create a lightweight tag | git tag v1.0.0-rc1 | Command Palette › Git: Create Tag... (leave the message empty) | Use the terminal | Day 13 |
| List tags with their messages | git tag -n | Use the terminal | Use the terminal | Day 13 |
| Show a tag and its commit | git show v1.0.1 --no-patch | Use the terminal | Use the terminal | Day 13 |
| Push one tag | git push origin v1.0.1 | Use the terminal | Your next Push origin takes it | Day 13 |
| Push commits plus their annotated tags | git push --follow-tags | Use the terminal | Use the terminal | Day 13 |
| Push every local tag | git push --tags | Command Palette › Git: Push Tags | Use the terminal | Day 13 |
| See which tags GitHub has | git ls-remote --tags origin | Use the terminal | Use the terminal | Day 13 |
| Delete a local tag (not pushed yet) | git tag -d v1.0.1 | Use the terminal | Use the terminal | Day 13 |
| Start a branch from a tag | git switch -c hotfix/1.0.1 v1.0.0 | Command Palette › Git: Create Branch From... | Create branch from commit | Day 13 |
| Copy a hotfix commit onto main | git cherry-pick hotfix/1.0.1 | Command Palette › Git: Cherry Pick... | Cherry-pick commit… | Day 13 |
| Start a hotfix branch at a release tag | git switch -c hotfix/1.2.1 v1.2.0 | Command Palette › Git: Create Branch From... | History: right-click the tagged commit, Create branch from commit | Day 14 |
| Push a branch and a tag in one go | git push origin hotfix/1.2.1 v1.2.1 | Publish Branch, then Command Palette › Git: Push Tags | Publish branch (pushes tags made in Desktop too) | Day 14 |
Bisect
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Start a bisect session | git bisect start | Use the terminal | Use the terminal | Bonus B2 |
| Mark the current commit bad | git bisect bad | Use the terminal | Use the terminal | Bonus B2 |
| Mark a known good commit | git bisect good v1.0.0 | Use the terminal | Use the terminal | Bonus B2 |
| Let Git test every step | git bisect run python -m unittest | Use the terminal | Use the terminal | Bonus B2 |
| Skip a commit you can't test | git bisect skip | Use the terminal | Use the terminal | Bonus B2 |
| See your verdicts so far | git bisect log | Use the terminal | Use the terminal | Bonus B2 |
| End the session and go back | git bisect reset | Use the terminal | Use the terminal | Bonus B2 |
Fork
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Catch your main up with the original | git merge --ff-only upstream/main | Command Palette › Git: Merge... | Branch › Merge into current branch… | Bonus B3 |
| Update your fork on GitHub | git push origin main | Command Palette › Git: Push | Push origin | Bonus B3 |
| Delete a merged branch from your fork | git push origin --delete docs/add-contributor | Use the terminal | Branch › Delete… | Bonus B3 |
Hooks
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| See the example hooks | Get-ChildItem .git\hooks -Name | Use the terminal | Use the terminal | Bonus B4 |
| Install the team's pre-commit hooks (once per clone) | pre-commit install | Use the terminal | Use the terminal | Bonus B4 |
| Run all pre-commit hooks on every file | pre-commit run --all-files | Use the terminal | Use the terminal | Bonus B4 |
| Commit without running hooks (emergencies only) | git commit --no-verify -m "Fix CI config" | Use the terminal | Use the terminal | Bonus B4 |
Worktree
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Check out a branch in a second folder | git worktree add ../hotfix-1.2.1 hotfix/1.2.1 | Use the terminal | Use the terminal | Bonus B4 |
| List your worktrees | git worktree list | Use the terminal | Use the terminal | Bonus B4 |
| Remove a worktree folder | git worktree remove ../hotfix-1.2.1 | Use the terminal | Use the terminal | Bonus B4 |
GitHub
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Sign in the GitHub CLI | gh auth login | Use the terminal | Not needed: Desktop signs in on its own | Bonus B5 |
Issues
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| List open issues | gh issue list | Use the terminal | Use the terminal | Bonus B5 |
Internals
| Task | Terminal | VS Code | GitHub Desktop | Day |
|---|---|---|---|---|
| Show the full id of a commit | git rev-parse HEAD | Use the terminal | Use the terminal | Bonus B6 |
| Show an object's type | git cat-file -t 683a182 | Use the terminal | Use the terminal | Bonus B6 |
| Show an object's contents | git cat-file -p HEAD | Use the terminal | Use the terminal | Bonus B6 |
| See which branch HEAD points to | Get-Content .git\HEAD | Use the terminal | Use the terminal | Bonus B6 |
| Count loose and packed objects | git count-objects -v | Use the terminal | Use the terminal | Bonus B6 |