Bird
Raised Fist0
Gitdevops~5 mins

Deleting remote 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 branches on a remote repository are no longer needed and clutter the project. Deleting remote branches helps keep the project clean and organized by removing branches that are finished or obsolete.
When a feature branch has been merged and is no longer needed on the remote repository
When a remote branch was created by mistake and should be removed
When cleaning up stale branches that are not active anymore
When you want to reduce clutter in the list of remote branches
When a branch was pushed for testing but should not remain on the remote
Commands
This command deletes the remote branch named 'feature/login' from the 'origin' remote repository. It tells Git to remove that branch from the remote server.
Terminal
git push origin --delete feature/login
Expected OutputExpected
To https://github.com/example/repo.git - [deleted] feature/login
--delete - Specifies that the branch should be deleted on the remote
This command updates your local list of remote branches and removes references to branches that no longer exist on the remote. It cleans up your local view.
Terminal
git fetch --prune
Expected OutputExpected
From https://github.com/example/repo - [deleted] origin/feature/login
--prune - Removes local references to deleted remote branches
This command lists all remote branches your local Git knows about. After pruning, the deleted branch should no longer appear here.
Terminal
git branch -r
Expected OutputExpected
origin/main origin/develop origin/feature/payment
Key Concept

If you remember nothing else from this pattern, remember: use 'git push origin --delete branch-name' to remove a branch from the remote repository.

Common Mistakes
Trying to delete a remote branch using 'git branch -d branch-name'
'git branch -d' only deletes local branches, not remote ones, so the remote branch remains untouched.
Use 'git push origin --delete branch-name' to delete the branch from the remote repository.
Not running 'git fetch --prune' after deleting a remote branch
Your local Git still shows the deleted branch in the remote branch list, causing confusion.
Run 'git fetch --prune' to update and clean your local remote branch references.
Summary
Use 'git push origin --delete branch-name' to delete a branch from the remote repository.
Run 'git fetch --prune' to update your local remote branch list and remove deleted branches.
Check remote branches with 'git branch -r' to confirm the branch is deleted.

Practice

(1/5)
1. What does the command git push origin --delete feature1 do?
easy
A. Deletes the remote branch named 'feature1' from the origin repository.
B. Deletes the local branch named 'feature1'.
C. Deletes all branches except 'feature1' on the remote.
D. Renames the remote branch 'feature1' to 'origin'.

Solution

  1. Step 1: Understand the command structure

    The command uses git push with origin to interact with the remote repository named 'origin'.
  2. Step 2: Interpret the --delete flag

    The --delete flag tells Git to remove the specified branch from the remote repository.
  3. Final Answer:

    Deletes the remote branch named 'feature1' from the origin repository. -> Option A
  4. Quick Check:

    Deleting remote branch = git push origin --delete branch-name [OK]
Hint: Use 'git push origin --delete branch' to remove remote branches [OK]
Common Mistakes:
  • Confusing remote branch deletion with local branch deletion
  • Using 'git branch -d' which deletes local branches only
  • Thinking '--delete' renames branches
  • Assuming it deletes all branches
2. Which of the following is the recommended modern syntax to delete a remote branch named bugfix?
easy
A. git push origin :bugfix
B. git push origin --remove bugfix
C. git branch -r -d bugfix
D. git push origin --delete bugfix

Solution

  1. Step 1: Review valid commands for deleting remote branches

    The modern and clear syntax is git push origin --delete branch-name.
  2. Step 2: Check each option

    git push origin :bugfix uses an older syntax but is valid; however, the question asks for the recommended modern syntax, which is the explicit --delete flag. git push origin --remove bugfix uses a non-existent flag --remove. git branch -r -d bugfix deletes local remote-tracking branches, not remote branches.
  3. Final Answer:

    git push origin --delete bugfix -> Option D
  4. Quick Check:

    Correct syntax = git push origin --delete branch [OK]
Hint: Use '--delete' flag with 'git push origin' to delete remote branch [OK]
Common Mistakes:
  • Using '--remove' instead of '--delete'
  • Confusing local branch deletion with remote
  • Using 'git branch -r -d' which only deletes local remote-tracking branches
  • Not specifying the remote name 'origin'
3. What will be the output or effect of running the command git push origin --delete release-v1.0 if the branch release-v1.0 exists on the remote?
medium
A. The remote branch 'release-v1.0' will be deleted and a success message shown.
B. The local branch 'release-v1.0' will be deleted.
C. An error saying branch does not exist will appear.
D. Nothing happens; the command is invalid.

Solution

  1. Step 1: Understand the command effect

    The command deletes the remote branch named 'release-v1.0' if it exists on the remote repository.
  2. Step 2: Predict the output

    If the branch exists, Git will delete it and show a success message confirming the deletion.
  3. Final Answer:

    The remote branch 'release-v1.0' will be deleted and a success message shown. -> Option A
  4. Quick Check:

    Deleting existing remote branch shows success [OK]
Hint: Deleting existing remote branch shows success message [OK]
Common Mistakes:
  • Thinking local branches are deleted
  • Expecting error if branch exists
  • Assuming command is invalid
  • Confusing remote branch deletion with local branch deletion
4. You ran git push origin --delete hotfix but got an error: error: unable to delete 'hotfix': remote ref does not exist. What is the most likely cause?
medium
A. The local branch 'hotfix' is checked out and cannot be deleted.
B. You do not have permission to delete branches on the remote.
C. The remote branch 'hotfix' does not exist on the remote repository.
D. The syntax of the command is incorrect.

Solution

  1. Step 1: Analyze the error message

    The error says 'remote ref does not exist', meaning the branch named 'hotfix' is not found on the remote.
  2. Step 2: Check command and permissions

    The command syntax is correct, and permission errors usually show different messages. The local branch state does not affect remote deletion.
  3. Final Answer:

    The remote branch 'hotfix' does not exist on the remote repository. -> Option C
  4. Quick Check:

    Remote branch missing causes 'remote ref does not exist' error [OK]
Hint: Check if remote branch exists before deleting [OK]
Common Mistakes:
  • Assuming local branch status affects remote deletion
  • Blaming permissions without checking branch existence
  • Mistaking syntax error for branch absence
  • Ignoring error message details
5. You want to delete multiple remote branches named feature1, feature2, and feature3 in one command using the --delete flag. Which of the following is the correct way to do this?
hard
A. git push origin :feature1 :feature2 :feature3
B. git push origin --delete feature1 && git push origin --delete feature2 && git push origin --delete feature3
C. git push origin --delete feature1 feature2 feature3
D. git branch -r -d feature1 feature2 feature3

Solution

  1. Step 1: Understand multi-branch deletion syntax

    Git does not support deleting multiple remote branches in one command by listing them after --delete. You must run separate commands or use multiple --delete flags.
  2. Step 2: Evaluate options

    git push origin --delete feature1 feature2 feature3 is invalid syntax and will cause an error. git push origin --delete feature1 && git push origin --delete feature2 && git push origin --delete feature3 runs multiple commands separately, which works correctly. git push origin :feature1 :feature2 :feature3 uses old syntax without the --delete flag and may not be recommended. git branch -r -d feature1 feature2 feature3 deletes local remote-tracking branches, not remote branches.
  3. Final Answer:

    git push origin --delete feature1 && git push origin --delete feature2 && git push origin --delete feature3 -> Option B
  4. Quick Check:

    Multiple remote branches deleted by running separate commands with --delete [OK]
Hint: Run separate 'git push origin --delete branch' commands to remove multiple remotes [OK]
Common Mistakes:
  • Trying to delete multiple branches with old syntax
  • Using invalid multi-branch --delete syntax
  • Confusing local remote-tracking branch deletion with remote
  • Not listing all branches after --delete