git知识点汇总

161 阅读2分钟

1.批量删除本地除master之外的分支

1. 删除本地已合并master的分支

git branch | grep -v "master" | xargs git branch -D

列出所有与主分支(这里假设是master)合并的分支,
然后筛选掉当前所在的分支(以 * 标记的分支),
最后使用 xargs命令将筛选出的分支名称作为参数传递给 git branch -d 命令进行删除

2. 删除本地除master之外的分支

git branch | grep -v "master" | xargs git branch -D

列出所有本地分支的名称,
然后使用正则表达式筛选出非"master"的分支,
最后使用xargs命令将筛选出的分支名称作为参数传递给git branch -D命令进行强力删除

2.删除本地远程分支

1.本地删除远程已经不存在的分支

git fetch --prune

使用 git fetch --prune 命令时,Git 会比较您的本地分支和远程仓库中的分支,并删除那些在远程仓库中已被删除的分支。这可以确保您的本地仓库与远程仓库保持同步,并避免在合并操作时出现冲突

  • 2.不同写法
    git fetch -p
    git fetch -p origin
    git remote prune origin

2.批量删除远程分支

查看某一类远程分支fix是指分支名称包含fix字段的 git branch -a | grep fix git branch -a | grep <branch-name1> <branch-name2> <branch-name3>

2.批量删除远程分支

git for-each-ref --format='%(refname:short)' refs/remotes/origin/ | cut -c 11- | xargs -I {} sh -c 'git push origin :{}'

  1. git for-each-ref: 这是一个Git命令,用于遍历所有引用(包括本地分支、远程分支、标签等)。它可以将每个引用的信息输出到标准输出。
  2. --format='%(refname:short)': 这是一个选项,用于指定输出引用的格式。%(refname:short) 表示只输出引用的短名称,不包括路径和前缀。
  3. refs/remotes/origin/: 这是一个引用路径,用于指定要遍历的远程分支。refs/remotes/origin/ 表示所有以 "origin/" 开头的的前缀的远程分支
  4. | cut -c 11-: 这是一个管道操作符,将前一个命令的输出传递给下一个命令。cut -c 11- 表示从第11个字符开始,将每行文本剪切到结尾。
  5. xargs -I {} sh -c 'git push origin :{}': 这是一个命令行工具,用于将输入转换为命令行参数。-I {} 表示将输入替换为指定的占位符 {}sh -c 'git push origin :{}' 是一个Shell命令,将占位符 {} 替换为剪贴板中的文本,并执行推送操作,删除远程仓库中的分支。