Bird
Raised Fist0
Gitdevops~5 mins

Deleting branches 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
Sometimes you finish working on a feature or fix and want to clean up your project by removing branches you no longer need. Deleting branches helps keep your project tidy and avoids confusion.
After merging a feature branch into the main branch to keep the branch list clean
When a branch was created by mistake and is no longer needed
To remove old branches that are no longer active or maintained
When cleaning up remote branches that have been deleted locally
To avoid clutter in your branch list and reduce mistakes
Commands
This command deletes the local branch named 'feature-login' if it has been fully merged. It helps clean up branches safely.
Terminal
git branch -d feature-login
Expected OutputExpected
Deleted branch feature-login (was 1a2b3c4).
-d - Deletes a branch only if it is fully merged
This command force deletes the local branch 'feature-login' even if it has unmerged changes. Use with caution to avoid losing work.
Terminal
git branch -D feature-login
Expected OutputExpected
Deleted branch feature-login (was 1a2b3c4).
-D - Force deletes a branch regardless of merge status
This command deletes the remote branch 'feature-login' from the remote repository named 'origin'. It cleans up branches on the server.
Terminal
git push origin --delete feature-login
Expected OutputExpected
To https://github.com/example/repo.git - [deleted] feature-login
--delete - Deletes the specified branch on the remote repository
This command lists all local and remote branches so you can verify which branches exist after deletion.
Terminal
git branch -a
Expected OutputExpected
main develop remotes/origin/main remotes/origin/develop
-a - Shows all branches, local and remote
Key Concept

If you remember nothing else, remember: use '-d' to safely delete merged branches and '--delete' to remove branches from the remote repository.

Common Mistakes
Trying to delete a branch with 'git branch -d' before it is merged
Git will refuse to delete the branch to prevent losing unmerged work
Either merge the branch first or use 'git branch -D' to force delete if you are sure
Deleting a remote branch by deleting the local branch only
The remote branch still exists and can cause confusion or conflicts
Use 'git push origin --delete branch-name' to remove the branch from the remote
Force deleting branches without checking their status
You may lose important unmerged changes permanently
Always check branch status and merge state before using '-D'
Summary
Use 'git branch -d branch-name' to safely delete a local branch that is merged.
Use 'git branch -D branch-name' to force delete a local branch regardless of merge status.
Use 'git push origin --delete branch-name' to delete a branch from the remote repository.
Use 'git branch -a' to list all branches and verify deletions.

Practice

(1/5)
1. What does the command git branch -d feature do?
easy
A. Deletes the remote branch named 'feature'.
B. Deletes the local branch named 'feature' only if it is fully merged.
C. Force deletes the local branch named 'feature' regardless of merge status.
D. Creates a new branch named 'feature'.

Solution

  1. Step 1: Understand the command syntax

    The command git branch -d is used to delete a local branch safely.
  2. Step 2: Check the merge condition

    The -d option deletes the branch only if it has been fully merged to avoid losing work.
  3. Final Answer:

    Deletes the local branch named 'feature' only if it is fully merged. -> Option B
  4. Quick Check:

    git branch -d safely deletes merged branches [OK]
Hint: Use -d to delete merged branches safely [OK]
Common Mistakes:
  • Confusing -d with -D which force deletes
  • Thinking it deletes remote branches
  • Assuming it deletes unmerged branches
2. Which command correctly force deletes a local branch named bugfix?
easy
A. git branch -D bugfix
B. git branch -d bugfix
C. git push origin --delete bugfix
D. git delete branch bugfix

Solution

  1. Step 1: Identify force delete option

    The -D option in git branch force deletes a local branch even if unmerged.
  2. Step 2: Confirm command correctness

    git branch -D bugfix is the correct syntax to force delete the local branch named 'bugfix'.
  3. Final Answer:

    git branch -D bugfix -> Option A
  4. Quick Check:

    Force delete local branch = git branch -D [OK]
Hint: Use -D to force delete local branches [OK]
Common Mistakes:
  • Using -d which only deletes merged branches
  • Trying to delete remote branch with local command
  • Typing invalid commands like git delete branch
3. What is the output of the command git push origin --delete release if the remote branch release exists?
medium
A. Deletes the remote branch 'release' and shows confirmation.
B. Deletes the local branch 'release' only.
C. Shows an error because the syntax is incorrect.
D. Creates a new remote branch named 'release'.

Solution

  1. Step 1: Understand the command purpose

    git push origin --delete release is used to remove a branch from the remote repository named 'origin'.
  2. Step 2: Confirm the effect on remote branch

    If the remote branch 'release' exists, this command deletes it and shows a confirmation message.
  3. Final Answer:

    Deletes the remote branch 'release' and shows confirmation. -> Option A
  4. Quick Check:

    Remote branch deletion uses git push origin --delete [OK]
Hint: Use git push origin --delete to remove remote branches [OK]
Common Mistakes:
  • Thinking it deletes local branches
  • Using wrong syntax causing errors
  • Assuming it creates branches
4. You run git branch -d feature but get an error saying the branch is not fully merged. What should you do to delete it anyway?
medium
A. Rename the branch before deleting.
B. Use git push origin --delete feature to delete locally.
C. Run git branch -d feature again.
D. Use git branch -D feature to force delete the branch.

Solution

  1. Step 1: Understand the error cause

    The error means the branch 'feature' has changes not merged to other branches.
  2. Step 2: Use force delete option

    To delete it anyway, use git branch -D feature which forces deletion regardless of merge status.
  3. Final Answer:

    Use git branch -D feature to force delete the branch. -> Option D
  4. Quick Check:

    Force delete unmerged branch = git branch -D [OK]
Hint: Use -D to force delete unmerged branches [OK]
Common Mistakes:
  • Trying to delete remote branch with local command
  • Repeating the same command without force
  • Renaming branch does not delete it
5. You want to delete a branch named hotfix both locally and remotely. Which sequence of commands is correct?
hard
A. git branch -d hotfix && git push origin --delete hotfix
B. git push origin --delete hotfix && git branch -d hotfix
C. git branch -D hotfix && git push origin --delete hotfix
D. git branch -d hotfix && git branch -D hotfix

Solution

  1. Step 1: Delete local branch forcefully

    Use git branch -D hotfix to delete the local branch even if unmerged.
  2. Step 2: Delete remote branch

    Use git push origin --delete hotfix to remove the branch from the remote repository.
  3. Final Answer:

    git branch -D hotfix && git push origin --delete hotfix -> Option C
  4. Quick Check:

    Force delete local then delete remote = git branch -D hotfix && git push origin --delete hotfix [OK]
Hint: Force delete local then delete remote branch [OK]
Common Mistakes:
  • Deleting remote before local can cause confusion
  • Using -d instead of -D for local unmerged branches
  • Trying to delete local branch twice