Bird
Raised Fist0
Gitdevops~5 mins

Repository (committed history) in Git - Commands & Configuration

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
A repository stores all the files and their changes over time. Committed history lets you see what was changed, when, and by whom. This helps track progress and fix mistakes.
When you want to save a snapshot of your project to keep track of changes.
When you need to see who changed a file and why.
When you want to go back to an earlier version of your project.
When you want to share your project history with teammates.
When you want to review the sequence of changes before deploying.
Commands
This command creates a new Git repository in your current folder. It starts tracking changes.
Terminal
git init
Expected OutputExpected
Initialized empty Git repository in /home/user/my-project/.git/
This command stages all current files to be included in the next commit. It tells Git what changes to save.
Terminal
git add .
Expected OutputExpected
No output (command runs silently)
This command saves the staged changes as a new commit with a message describing the changes.
Terminal
git commit -m "Initial commit"
Expected OutputExpected
[master (root-commit) abc1234] Initial commit 3 files changed, 45 insertions(+) create mode 100644 file1.txt create mode 100644 file2.txt create mode 100644 file3.txt
-m - Adds a commit message inline without opening an editor
This command shows a short summary of the commit history, listing each commit on one line.
Terminal
git log --oneline
Expected OutputExpected
abc1234 Initial commit
--oneline - Shows each commit in a compact single line format
Key Concept

If you remember nothing else from this pattern, remember: commits save snapshots of your project so you can track and revisit changes anytime.

Common Mistakes
Not running 'git add' before 'git commit'
Git will not include any changes in the commit if they are not staged with 'git add'.
Always stage your changes with 'git add' before committing.
Using vague commit messages like 'update' or 'fix'
Vague messages make it hard to understand what changed and why when reviewing history.
Write clear, descriptive commit messages that explain the purpose of the change.
Summary
Initialize a Git repository with 'git init' to start tracking your project.
Stage changes using 'git add' to prepare them for saving.
Save changes as commits with 'git commit -m' including a clear message.
View your commit history with 'git log --oneline' to see past snapshots.

Practice

(1/5)
1. What does the git log command show in a Git repository?
easy
A. A list of all commits made in the repository history
B. The current status of files in the working directory
C. The list of branches in the repository
D. The remote repository URLs configured

Solution

  1. Step 1: Understand the purpose of git log

    The git log command is designed to show the commit history of the repository, listing all saved changes.
  2. Step 2: Differentiate from other commands

    Commands like git status show file changes, git branch shows branches, and git remote -v shows remote URLs, not commit history.
  3. Final Answer:

    A list of all commits made in the repository history -> Option A
  4. Quick Check:

    Commit history = git log output [OK]
Hint: Remember: git log = commit history list [OK]
Common Mistakes:
  • Confusing git log with git status
  • Thinking git log shows branches
  • Mixing git log with remote info commands
2. Which of the following commands correctly shows a short, one-line summary of each commit in the history?
easy
A. git log --short
B. git log --oneline
C. git show --summary
D. git status --oneline

Solution

  1. Step 1: Identify the correct flag for short commit view

    The --oneline option with git log shows each commit in a single line summary.
  2. Step 2: Verify other options are incorrect

    git log --short is invalid, git show --summary shows details of one commit, and git status --oneline is invalid syntax.
  3. Final Answer:

    git log --oneline -> Option B
  4. Quick Check:

    Short commit list = git log --oneline [OK]
Hint: Use --oneline with git log for brief commit list [OK]
Common Mistakes:
  • Using invalid flags like --short
  • Confusing git show with git log
  • Trying to use git status for commit history
3. Given this command output from git log --oneline:
f3a1b2c Fix typo in README
9d8e7f6 Add new feature X
4b3c2d1 Initial commit
What is the hash of the commit that added the new feature?
medium
A. 9d8e7f6
B. f3a1b2c
C. 4b3c2d1
D. Cannot tell from this output

Solution

  1. Step 1: Read the commit messages and hashes

    The commit message "Add new feature X" corresponds to the hash 9d8e7f6.
  2. Step 2: Match the message to the correct hash

    Each line shows the hash first, then the message. So the hash for adding the feature is 9d8e7f6.
  3. Final Answer:

    9d8e7f6 -> Option A
  4. Quick Check:

    Commit message matches hash 9d8e7f6 [OK]
Hint: First word is hash, rest is message in git log --oneline [OK]
Common Mistakes:
  • Picking the wrong hash for the message
  • Thinking hashes are at the end
  • Assuming output is incomplete
4. You ran git log --oneline but got an error: error: unknown option `--oneline'. What is the most likely cause?
medium
A. You typed the command in the wrong folder
B. You must run git fetch before using --oneline
C. You need to add git log --oneline --all to fix it
D. Your Git version is too old and does not support --oneline

Solution

  1. Step 1: Understand the error message

    The error says the option --oneline is unknown, meaning Git does not recognize it.
  2. Step 2: Identify the cause

    This usually happens if the Git version is old and does not support the --oneline flag.
  3. Final Answer:

    Your Git version is too old and does not support --oneline -> Option D
  4. Quick Check:

    Unknown option error = outdated Git version [OK]
Hint: Unknown option often means Git version is outdated [OK]
Common Mistakes:
  • Assuming wrong folder causes option error
  • Thinking fetch fixes option errors
  • Adding unrelated flags to fix syntax
5. You want to see a quick summary of the last 3 commits in your repository, each on one line. Which command should you use?
hard
A. git log --oneline --last 3
B. git log --3 --oneline
C. git log --oneline -n 3
D. git log --limit=3 --oneline

Solution

  1. Step 1: Identify the correct option to limit commits

    The -n 3 or --max-count=3 option limits the number of commits shown.
  2. Step 2: Combine with --oneline for short output

    Using git log --oneline -n 3 shows the last 3 commits in one-line format.
  3. Step 3: Check other options for correctness

    --3 is invalid, --last 3 and --limit=3 are not valid git log options.
  4. Final Answer:

    git log --oneline -n 3 -> Option C
  5. Quick Check:

    Limit commits with -n, short view with --oneline [OK]
Hint: Use -n with --oneline to limit commits shown [OK]
Common Mistakes:
  • Using invalid flags like --last or --limit
  • Trying --3 which is invalid
  • Mixing order of options incorrectly