Bird
Raised Fist0
Gitdevops~10 mins

git diff between branches - 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 - git diff between branches
Start: Two branches
Run git diff branch1..branch2
Git compares files
Show differences line by line
User sees changes between branches
Git compares the content of two branches and shows line-by-line differences.
Execution Sample
Git
git diff main..feature
Shows the differences between the 'main' branch and the 'feature' branch.
Process Table
StepCommandActionResult
1git diff main..featureCompare files in 'main' and 'feature'Starts line-by-line comparison
2git diff main..featureDetect file changesFinds files changed between branches
3git diff main..featureShow added lines (+) and removed lines (-)Outputs diff with line markers
4git diff main..featureFinish comparisonAll differences displayed
5N/ANo more differencesCommand ends
💡 All file differences between 'main' and 'feature' branches have been shown
Status Tracker
VariableStartAfter Step 2After Step 3Final
branch1mainmainmainmain
branch2featurefeaturefeaturefeature
diff_outputfiles identifiedlines with + and -full diff text
Key Moments - 2 Insights
Why do some lines start with '+' and others with '-' in the diff output?
Lines starting with '+' are additions in the second branch, lines with '-' are removals compared to the first branch, as shown in execution_table step 3.
What does the '..' mean between branch names in the command?
The '..' tells git to compare the two branches, showing differences from the first branch to the second, as seen in execution_table step 1.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what does step 3 show?
AThe files that are identical
BThe line-by-line differences with '+' and '-'
CThe list of branches
DThe commit history
💡 Hint
Refer to execution_table row 3 under 'Result' column
At which step does git finish showing all differences?
AStep 2
BStep 4
CStep 5
DStep 3
💡 Hint
Look at the 'Action' and 'Result' columns for step 5 in execution_table
If you swap the branch names in the command, how does the diff output change?
AThe output shows differences from the new first branch to the second
BThe output stays the same
CGit shows an error
DGit merges the branches
💡 Hint
Check variable_tracker for branch1 and branch2 roles and execution_table step 1
Concept Snapshot
git diff branch1..branch2
Shows line-by-line differences between two branches.
Lines starting with '+' are additions in branch2.
Lines starting with '-' are removals from branch1.
Use to review changes before merging.
Full Transcript
This visual execution shows how the git diff command compares two branches. First, git identifies the two branches to compare. Then it finds files that differ between them. Next, it shows the differences line by line, marking added lines with '+' and removed lines with '-'. Finally, it finishes when all differences are displayed. This helps users see what changed from one branch to another before merging or reviewing code.

Practice

(1/5)
1. What does the command git diff branch1 branch2 show you?
easy
A. The commit history of branch1
B. The list of branches in the repository
C. The differences in code between branch1 and branch2
D. The status of files in the current branch

Solution

  1. Step 1: Understand the purpose of git diff

    The git diff command compares changes between two points in Git, such as branches.
  2. Step 2: Identify what comparing two branches means

    Comparing branch1 and branch2 shows the code differences between them.
  3. Final Answer:

    The differences in code between branch1 and branch2 -> Option C
  4. Quick Check:

    git diff branch1 branch2 = code differences [OK]
Hint: git diff between branches shows code changes [OK]
Common Mistakes:
  • Thinking it shows commit history
  • Confusing with git branch command
  • Expecting file status instead of differences
2. Which of the following is the correct syntax to see differences between two branches named main and feature?
easy
A. git diff main feature
B. git diff --branches main feature
C. git diff feature..main
D. git diff main..feature

Solution

  1. Step 1: Recall git diff syntax for branches

    The basic syntax is git diff branch1 branch2 without dots or extra flags.
  2. Step 2: Evaluate each option

    git diff main feature uses git diff main feature, which is correct. Options A and C use double dots which is incorrect for git diff. git diff --branches main feature uses a non-existent flag.
  3. Final Answer:

    git diff main feature -> Option A
  4. Quick Check:

    Correct syntax = git diff main feature [OK]
Hint: Use 'git diff branch1 branch2' without dots [OK]
Common Mistakes:
  • Using double dots '..' with git diff
  • Adding unsupported flags like --branches
  • Swapping branch order without reason
3. Given two branches, main and dev, where dev has added a new line console.log('Hello'); in app.js, what will git diff main dev show?
medium
A. An error message about branch names
B. A line removed: -console.log('Hello');
C. No output because branches are the same
D. A line added: +console.log('Hello');

Solution

  1. Step 1: Understand what git diff shows for added lines

    When a line is added in the second branch, git diff shows it with a plus sign (+).
  2. Step 2: Apply to the example

    The new line console.log('Hello'); added in dev will appear as a line starting with + in the diff output.
  3. Final Answer:

    A line added: +console.log('Hello'); -> Option D
  4. Quick Check:

    Added lines show with + in git diff [OK]
Hint: Added lines show with + in git diff output [OK]
Common Mistakes:
  • Thinking added lines show with -
  • Expecting no output for changes
  • Confusing branch order in diff
4. You run git diff main feature but get no output even though you know feature has changes. What is a likely reason?
medium
A. You forgot to commit changes in feature branch
B. The branches have no differences
C. You are currently on the feature branch
D. You used the wrong command syntax

Solution

  1. Step 1: Understand git diff compares committed changes

    Git diff between branches compares committed differences, not uncommitted changes.
  2. Step 2: Identify why no output appears

    If changes are not committed in feature, git diff won't show them when comparing branches.
  3. Final Answer:

    You forgot to commit changes in feature branch -> Option A
  4. Quick Check:

    Uncommitted changes not shown in branch diff [OK]
Hint: Only committed changes appear in git diff between branches [OK]
Common Mistakes:
  • Expecting uncommitted changes to show
  • Confusing current branch with diff branches
  • Assuming syntax error without checking commits
5. You want to review all changes between release and hotfix branches but only for files in the src/ folder. Which command correctly shows this?
hard
A. git diff release..hotfix src/
B. git diff release hotfix -- src/
C. git diff --src release hotfix
D. git diff release hotfix --path src/

Solution

  1. Step 1: Understand how to limit git diff to a folder

    Git diff allows specifying paths after a double dash -- to limit output to those files or folders.
  2. Step 2: Check each option for correct syntax

    git diff release hotfix -- src/ uses git diff release hotfix -- src/, which correctly limits diff to src/. git diff release..hotfix src/ uses double dots incorrectly. Options C and D use invalid flags.
  3. Final Answer:

    git diff release hotfix -- src/ -> Option B
  4. Quick Check:

    Use -- then folder to limit git diff [OK]
Hint: Use -- then folder path to filter git diff output [OK]
Common Mistakes:
  • Using double dots '..' with git diff
  • Adding unsupported flags like --src or --path
  • Placing folder path before branch names