最灵活的方式是使用自定义 Git 命令例如,在您的某处创建以下 Python 脚本$PATH
名称下git-rmbranch
并使它可执行 :
#!/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 push origin --delete <branch_name>
并删除本地远程跟踪分支(origin/<branch_name>
))(因此不必在意这一点。
P. S. 您可以找到这个 Git 命令的最新版本在这里欢迎提出意见和建议。