xargs takes input from standard input (basically, a string of text - or a list of git branches in this case), and splits the string where there are spaces into separate arguments that can be used in a command.įor each of the branches returned by egrep above, the script will run git branch -d, which will delete the branch on your local machine.Īnd here's the script in action in the terminal. | xargs git branch -dįinally, we pipe the result of the egrep search to the xargs command (short for extended arguments). The | (or pipe) at the beginning of the line means we're "piping" - or sending - the output of the previous command ( git branch -merged) into egrep to perform the regular expression search. So with the -v flag, we're asking egrep to find every branch that isn't named "main". The regular expression we're passing in - "(^\*|main)" - matches the characters "main" from the start of the line. Then you may need to deleted local merged branch by hand with git branch -d . The -v flag instructs egrep to print lines that do not match a given regular expression. After merging a branch Im able to delete the branch on remote. 3 Answers Sorted by: 10 If you want to completely remove it from you history, you could do the following: git rebase -i This will open your default editor (usually vi) with a list of commits, with the one you want to remove first.We use egrep (or extended grep) to search using extended regular expressions. Then, you could run git mgd branch-name to merge and delete a branch in one go. We're not specifying a commit, so the command will use the HEAD - the current local state of the main branch. The official git documentation writes this as "list branches whose tips are reachable from the specified commit ( HEAD if not specified)". This command checks out the main branch, and lists all branches that can be detected as being merged into the main branch. Only PRs that actually get approved and merged will be. In short, the code above checks out the main branch, lists all merged branches, searches for and lists branches that are not named exactly "main", and uses git to delete those branches on your local machine. A GitHub app that automatically deletes a branch after its merged. Git checkout main
0 Comments
Leave a Reply. |