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
Recall & Review
beginner
What is the golden rule of rebasing in Git?
Never rebase public branches that others might be using or have pulled.
Click to reveal answer
beginner
Why should you avoid rebasing public branches?
Because rebasing rewrites history, it can cause conflicts and confusion for others who have the original history.
Click to reveal answer
intermediate
What happens if you rebase a public branch that others have pulled?
Others will have to manually fix their history, which can lead to errors and lost work.
Click to reveal answer
beginner
When is it safe to use git rebase?
When working on local or private branches that no one else is using yet.
Click to reveal answer
beginner
What is a safer alternative to rebasing public branches?
Use git merge to combine changes without rewriting history.
Click to reveal answer
What does the golden rule of rebasing advise?
ANever rebase public branches
BAlways rebase public branches
CRebase only after merging
DRebase only on remote branches
✗ Incorrect
Rebasing public branches can cause problems for others who have the original history.
Why is rebasing public branches risky?
AIt deletes the branch
BIt rewrites commit history
CIt merges changes automatically
DIt creates new branches
✗ Incorrect
Rebasing rewrites commit history, which can confuse collaborators.
Which command is safer for public branches?
Agit rebase
Bgit reset
Cgit merge
Dgit stash
✗ Incorrect
git merge combines changes without rewriting history.
When is it okay to use git rebase?
AOn local private branches
BOn public branches
COn remote branches
DOn merged branches
✗ Incorrect
Rebasing is safe on local branches that no one else uses.
What problem can rebasing public branches cause for others?
AThey cannot push changes
BThey lose access to the repository
CThey get automatic updates
DThey must fix their history manually
✗ Incorrect
Others must fix their history manually if you rebase public branches.
Explain why the golden rule of rebasing says 'never rebase public'.
Think about what happens when history changes after others have copied it.
You got /4 concepts.
Describe a safe workflow for using git rebase without breaking collaboration.
Consider when rewriting history is safe and when it is not.
You got /4 concepts.
Practice
(1/5)
1. What is the main reason for the golden rule of rebasing: never rebase public?
easy
A. Rebasing public branches speeds up the repository cloning process.
B. Rebasing public branches can rewrite shared history and confuse collaborators.
C. Rebasing public branches automatically merges all conflicts.
D. Rebasing public branches deletes all previous commits permanently.
Solution
Step 1: Understand what rebasing does
Rebasing rewrites commit history by moving commits to a new base.
Step 2: Consider the effect on public branches
If you rebase a branch others use, their history conflicts with the rewritten one, causing confusion and errors.
Final Answer:
Rebasing public branches can rewrite shared history and confuse collaborators. -> Option B
Quick Check:
Rebasing public = rewrite shared history = confusion [OK]
Hint: Never rebase branches others already use to avoid conflicts [OK]
Common Mistakes:
Thinking rebasing speeds cloning
Believing rebasing auto-resolves conflicts
Assuming rebasing deletes commits permanently
2. Which of the following is the correct git command to rebase your current branch onto main?
easy
A. git rebase main
B. git rebase -m main
C. git rebase --merge main
D. git rebase --onto main
Solution
Step 1: Recall basic rebase syntax
The command to rebase the current branch onto another is git rebase <branch>.
Step 2: Check options given
Only git rebase main matches the correct syntax to rebase onto main.
Final Answer:
git rebase main -> Option A
Quick Check:
Basic rebase syntax = git rebase branch [OK]
Hint: Use 'git rebase branchname' to rebase current branch [OK]
Common Mistakes:
Adding unnecessary flags like -m or --merge
Using --onto incorrectly without extra arguments
Confusing rebase with merge commands
3. You have a local branch feature that you rebased onto main. What happens if you try to push it to a remote where feature was already shared without force?
medium
A. Push merges remote changes automatically.
B. Push succeeds and overwrites remote history automatically.
C. Push deletes the remote branch.
D. Push is rejected because history has diverged.
Solution
Step 1: Understand rebasing effect on commit history
Rebasing rewrites commits, so local branch history differs from remote.
Step 2: Consider git push behavior
Git refuses to push if histories diverge to prevent overwriting others' work unless forced.
Final Answer:
Push is rejected because history has diverged. -> Option D
Quick Check:
Rebase + push without force = rejected [OK]
Hint: Push after rebase needs --force or fails [OK]
Common Mistakes:
Assuming push overwrites remote without force
Thinking push merges automatically
Believing push deletes remote branch
4. You accidentally rebased a public branch and now collaborators have conflicts. What is the best way to fix this?
medium
A. Delete the remote branch and recreate it from scratch.
B. Tell collaborators to reset their branches to the new history.
C. Force push the rebased branch and ask collaborators to rebase or reset.
D. Merge the rebased branch into main to fix conflicts.
Solution
Step 1: Understand the problem caused by rebasing public branch
Rebasing rewrites history, so collaborators' copies conflict with the new history.
Step 2: Fix by force pushing and coordinating with collaborators
Force push updates remote with new history; collaborators must rebase or reset to sync.
Final Answer:
Force push the rebased branch and ask collaborators to rebase or reset. -> Option C
Quick Check:
Fix rebase public = force push + collaborator reset [OK]
Hint: Force push and coordinate resets after rebasing public branch [OK]
Common Mistakes:
Expecting collaborators to fix without reset
Deleting remote branch unnecessarily
Merging rebased branch to fix history
5. You want to keep your commit history clean by rebasing, but your branch feature is already pushed and shared. What is the safest workflow to update your branch without breaking the golden rule?
hard
A. Create a new local branch from main, cherry-pick your commits, then push as a new branch.
B. Rebase the shared feature branch directly and force push.
C. Merge main into feature instead of rebasing.
D. Delete the remote feature branch and push your rebased branch with the same name.
Solution
Step 1: Avoid rebasing a shared branch directly
Rebasing shared branches breaks history for others, so avoid it.
Step 2: Use a new local branch and cherry-pick commits
Create a fresh branch from main, apply your commits cleanly, then push as new branch to avoid rewriting shared history.
Final Answer:
Create a new local branch from main, cherry-pick your commits, then push as a new branch. -> Option A
Quick Check:
Keep history clean = new branch + cherry-pick + push new [OK]
Hint: Use new branch + cherry-pick to avoid rebasing shared branches [OK]
Common Mistakes:
Force pushing rebased shared branch
Merging instead of rebasing when clean history needed