最灵活的方式是使用自定义的 Git 命令。 例如, 在您的 $PATH 中以 Git- rmbranch 命名的某个地方创建以下 Python 脚本, 并使其可以执行 :
#!/usr/bin/env python3
import argparse
import subprocess
import sys
def rmbranch(branch_name, remote, force):
try:
print(subprocess.run(['git', 'branch', '-D' if force else '-d', branch_name],
capture_output=True, check=True, encoding='utf-8').stdout, end='')
except subprocess.CalledProcessError as exc:
print(exc.stderr.replace(f'git branch -D {branch_name}', f'git rmbranch -f {branch_name}'), end='')
return exc.returncode
return subprocess.run(['git', 'push', remote, '--delete', branch_name]).returncode
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Delete a Git branch locally and remotely.')
parser.add_argument('-r', '--remote', default='origin', help="The remote name (defaults to 'origin')")
parser.add_argument('-f', '--force', action='store_true', help='Force deletion of not fully merged branches')
parser.add_argument('branch_name', help='The branch name')
args = parser.parse_args()
sys.exit(rmbranch(args.branch_name, args.remote, args.force))
Git Rmbranch -h 将展示您使用信息 :
usage: git-rmbranch [-h] [-r REMOTE] [-f] branch_name
Delete a Git branch locally and remotely.
positional arguments:
branch_name The branch name
optional arguments:
-h, --help show this help message and exit
-r REMOTE, --remote REMOTE
The remote name (defaults to 'origin')
-f, --force Force deletion of not fully merged branches
请注意, git 推进源 - delete <branch_ name > 也会删除本地远程跟踪分支( 默认情况下为源/ < branch_ name > ) , 因此不需要关注 。
P. S. 您可以在此找到这个 Git 命令的最新版本, 欢迎提出意见和建议 。