Bird
Raised Fist0
Gitdevops~10 mins

Repository (committed history) in Git - Step-by-Step Execution

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
Process Flow - Repository (committed history)
Create Repository
Make Changes to Files
Stage Changes (git add)
Commit Changes (git commit)
History Updated with Commit
Repeat for New Changes
View Commit History (git log)
This flow shows how changes are made, staged, committed, and recorded in the repository history.
Execution Sample
Git
git init
echo 'Hello' > file.txt
git add file.txt
git commit -m 'Add file.txt'
git log
Initialize repo, create a file, stage it, commit it, then view commit history.
Process Table
StepCommandActionResult
1git initCreate new empty git repositoryRepository initialized with empty history
2echo 'Hello' > file.txtCreate file.txt with content 'Hello'file.txt created with text
3git add file.txtStage file.txt for commitfile.txt is now in staging area
4git commit -m 'Add file.txt'Commit staged changes with messageNew commit created with file.txt content
5git logShow commit historyDisplays commit with message 'Add file.txt'
6ExitNo more commandsEnd of demonstration
💡 No more commands to execute; commit history shows one commit.
Status Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4Final
RepositorynullEmpty repo createdEmpty repo with no commitsStaging area has file.txtOne commit with file.txtCommit history contains 1 commit
file.txtDoes not existDoes not existCreated with 'Hello'Created with 'Hello'Created with 'Hello'Created with 'Hello'
Key Moments - 2 Insights
Why do we need to 'git add' before 'git commit'?
Because 'git add' moves changes to the staging area, and only staged changes are included in the commit, as shown in step 3 and 4 of the execution table.
What does 'git log' show after the first commit?
'git log' shows the commit history including the commit message and metadata, as seen in step 5 where the commit 'Add file.txt' appears.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the state of the repository after step 3?
AStaging area contains file.txt but no commits yet
BRepository has one commit
CRepository is empty with no files
Dfile.txt is deleted
💡 Hint
Check the 'Action' and 'Result' columns at step 3 in the execution table.
At which step does the commit history get updated with a new commit?
AStep 2
BStep 3
CStep 4
DStep 5
💡 Hint
Look for the step where 'New commit created' is mentioned in the Result column.
If you skip 'git add' and run 'git commit' directly, what would happen?
ACommit will include all changes automatically
BCommit will fail or create empty commit if no staged changes
CRepository will be deleted
Dfile.txt will be removed from disk
💡 Hint
Recall the role of staging area shown in step 3 and 4 of the execution table.
Concept Snapshot
git repository stores committed history.
Use 'git init' to create repo.
Make changes, then 'git add' to stage.
Use 'git commit' to save staged changes.
View history with 'git log'.
Only staged changes are committed.
Full Transcript
This visual execution shows how a git repository records committed history. First, 'git init' creates an empty repository. Then a file is created with content. 'git add' stages the file, preparing it for commit. 'git commit' saves the staged changes as a new commit in the repository history. Finally, 'git log' displays the commit history. The staging area is important because only files added there are included in commits. This process repeats as you make more changes and commits.

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