有一些远程存储库有很多分支。在 Web UI 方面,其中很多都落后 20 多个提交。这些分支很可能被他们的提交者放弃了,我想通知这些提交者删除这些分支。
我已经看到了在一个或另一个分支上获取提交的片段,但是我对分支列表和该分支的最新提交者感兴趣,因为该分支比 master 晚了 20 个提交(不管他们有多少提交) .
是否有 git 命令可以链接在一起以获取此信息?
这是一个小 bash 脚本,它告诉您分支“年龄”(自上次提交到该分支以来的时间),以及负责的提交者:
#!/bin/env bash
remote=${1:-/refs/heads}
for branch in $(git for-each-ref --format='%(refname)') ; do
if [[ ${branch} =~ ${remote}/(.*) ]] ; then
short_branch_name=${BASH_REMATCH[1]}
latest_commit=$(git log -1 --format="%at [%ar] %cn" ${branch})
echo ${latest_commit} ${short_branch_name}
fi
done | sort | cut -c 12-
Run Code Online (Sandbox Code Playgroud)
调用它refs/remotes以查看所有分支,而无需关心您在本地实际检查的内容。这是gitrepo 本身的一些示例输出。
$ ~/Desktop/branch-ages.bash refs/remotes
[7 days ago] Junio C Hamano origin/maint
[25 hours ago] Junio C Hamano origin/HEAD
[25 hours ago] Junio C Hamano origin/master
[23 hours ago] Junio C Hamano origin/next
[23 hours ago] Junio C Hamano origin/pu
[22 hours ago] Junio C Hamano origin/todo
Run Code Online (Sandbox Code Playgroud)
添加和删除格式参数以供品味。