Bird
Raised Fist0
Gitdevops~10 mins

What a branch is (pointer to a commit) 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 - What a branch is (pointer to a commit)
Start: Commit A
Commit B
Commit C
Commit D
A branch is like a label that points to a specific commit in the project history. When you add new commits, the branch pointer moves forward to the latest commit.
Execution Sample
Git
git init
# Create initial commit A
# Commit B added
# Commit C added
# Create branch 'feature' at commit C
# Commit D added on 'feature' branch
Shows how branches point to commits and move as new commits are added.
Process Table
StepActionBranch PointerCommit HistoryNotes
1Initialize repo and create commit Amain -> AAInitial commit, main points to A
2Add commit B on mainmain -> BA -> Bmain moves to B
3Add commit C on mainmain -> CA -> B -> Cmain moves to C
4Create branch 'feature' at commit Cmain -> C, feature -> CA -> B -> Cfeature points to same commit as main
5Add commit D on feature branchmain -> C, feature -> DA -> B -> C -> Dfeature moves to D, main stays at C
💡 Execution stops after commit D; branches point to their latest commits.
Status Tracker
BranchStartAfter Step 2After Step 3After Step 4After Step 5
mainABCCC
feature---CD
Key Moments - 2 Insights
Why does the 'main' branch pointer not move when a commit is added to 'feature'?
Because branches are independent pointers. When commit D is added on 'feature', only 'feature' moves forward. 'main' stays at commit C as shown in step 5 of the execution_table.
What happens when a new branch is created at a commit?
The new branch pointer points exactly to that commit, sharing history up to that point. See step 4 where 'feature' points to commit C, same as 'main'.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table at step 3, where does the 'main' branch point?
ACommit B
BCommit A
CCommit C
DCommit D
💡 Hint
Check the 'Branch Pointer' column at step 3 in the execution_table.
At which step does the 'feature' branch get created?
AStep 2
BStep 4
CStep 3
DStep 5
💡 Hint
Look for when 'feature' first appears in the 'Branch Pointer' column.
If a new commit is added to 'main' after step 5, what happens to the 'feature' branch pointer?
AIt stays at commit D
BIt moves forward to the new commit
CIt moves back to commit C
DIt is deleted
💡 Hint
Branches move independently; see how 'main' and 'feature' pointers differ in the execution_table.
Concept Snapshot
A branch in git is a pointer to a commit.
It moves forward as new commits are added on that branch.
Branches can share history by pointing to the same commit.
Creating a branch copies the pointer to a commit.
Branches move independently when new commits are made.
Full Transcript
In git, a branch is like a label that points to a specific commit. When you create a new commit on a branch, the branch pointer moves forward to that new commit. Multiple branches can point to the same commit, sharing history. When you create a new branch, it points to the current commit you are on. Branches move independently, so adding commits on one branch does not move other branches. This helps manage different lines of work in a project.

Practice

(1/5)
1. What is a branch in Git?
easy
A. A backup of the entire repository
B. A pointer to a specific commit in the project history
C. A copy of all files in the project
D. A remote server where code is stored

Solution

  1. Step 1: Understand what a branch represents

    A branch in Git is not a copy of files but a reference to a commit.
  2. Step 2: Identify the correct description

    The branch points to a specific commit, allowing you to work on different versions safely.
  3. Final Answer:

    A pointer to a specific commit in the project history -> Option B
  4. Quick Check:

    Branch = pointer to commit [OK]
Hint: Remember: branch points, not copies files [OK]
Common Mistakes:
  • Thinking a branch copies all project files
  • Confusing branch with remote repository
  • Assuming branch is a backup
2. Which of the following commands correctly creates a new branch named feature in Git?
easy
A. git branch feature
B. git create branch feature
C. git new branch feature
D. git checkout feature

Solution

  1. Step 1: Recall the Git syntax for creating branches

    The correct command to create a branch is git branch <branch-name>.
  2. Step 2: Check each option

    Only git branch feature matches the correct syntax.
  3. Final Answer:

    git branch feature -> Option A
  4. Quick Check:

    Create branch = git branch [OK]
Hint: Use 'git branch' to create branches [OK]
Common Mistakes:
  • Using 'git create branch' which is invalid
  • Using 'git new branch' which is not a Git command
  • Confusing 'git checkout' with branch creation
3. Given the following Git commands:
git commit -m "Initial commit"
git branch feature
What does the feature branch point to immediately after creation?
medium
A. No commit, branch is empty
B. An empty commit with no changes
C. The first commit in the repository
D. The latest commit on the current branch

Solution

  1. Step 1: Understand branch creation behavior

    When you create a branch, it points to the current commit you are on.
  2. Step 2: Analyze the commands

    After the initial commit, creating 'feature' branch points it to that latest commit.
  3. Final Answer:

    The latest commit on the current branch -> Option D
  4. Quick Check:

    New branch points to current commit [OK]
Hint: New branch points where you are now [OK]
Common Mistakes:
  • Thinking branch points to no commit
  • Assuming branch points to first commit always
  • Confusing branch with empty commit
4. You ran git branch new-feature but the branch is not the current branch (no asterisk) when you run git branch. What is the most likely reason?
medium
A. You created the branch but did not switch to it
B. The branch creation command was incorrect
C. The branch was created on a remote repository only
D. Git does not allow branch names with hyphens

Solution

  1. Step 1: Understand branch creation and listing

    Creating a branch with git branch adds it locally but does not switch to it.
  2. Step 2: Check why branch might not be current

    The branch appears in git branch list but without the * marker because you did not switch (git checkout) to it.
  3. Final Answer:

    You created the branch but did not switch to it -> Option A
  4. Quick Check:

    Branch created but not checked out [OK]
Hint: Create branch then checkout to use it [OK]
Common Mistakes:
  • Assuming branch creation switches branches
  • Thinking branch names cannot have hyphens
  • Confusing local and remote branches
5. You want to create a new branch experiment that starts from a commit with hash abc1234, without switching to it. Which command correctly does this?
hard
A. git checkout -b experiment abc1234
B. git branch -c experiment abc1234
C. git branch experiment abc1234
D. git create branch experiment abc1234

Solution

  1. Step 1: Understand how to create branch at specific commit

    Using git branch <name> <commit> creates a branch pointing to that commit without switching.
  2. Step 2: Check each option

    git branch experiment abc1234 matches. git checkout -b creates and switches. C and D are invalid.
  3. Final Answer:

    git branch experiment abc1234 -> Option C
  4. Quick Check:

    Create branch at commit = git branch name commit [OK]
Hint: Use 'git branch name commit' to start branch at commit [OK]
Common Mistakes:
  • Using invalid commands like 'git create branch'
  • Confusing branch creation with checkout
  • Using wrong flags like '-c' which does not exist