gpt4 book ai didi

git - 如何列出已推送到远程的分支?

转载 作者:行者123 更新时间:2023-12-01 23:52:52 24 4
gpt4 key购买 nike

我可以找到很多列出跟踪分支的答案( here ),我想做的是检查哪些本地分支可以安全删除,因为提交已经被推送到远程。

在大多数情况下,我将这些分支推送到远程并且它们没有“跟踪”,因此该部分并没有真正的帮助。但是在大多数情况下,远程分支具有相同的名称并且应该指向相同的提交(但并不总是如此)。

貌似这应该是比较常见的事情吧?

最佳答案

我发现这样做的方法是:

git branch -a --contains name_of_local_branch | grep -c remotes/origin

当然, origin可以更改为任何 Remote 的名称。

这将输出包含本地分支的远程分支的数量。如果该数字与 0 不同,那么我可以从本地存储库中清除它。

更新,把它变成了一个脚本:
#!/bin/bash
# Find (/delete) local branches with content that's already pushed
# Takes one optional argument with the name of the remote (origin by default)

# Prevent shell expansion to not list the current files when we hit the '*' on the current branch
set -f

if [ $# -eq 1 ]
then
remote="$1"
else
remote="origin"
fi

for b in `git branch`; do

# Skip that "*"
if [[ "$b" == "*" ]]
then
continue
fi

# Check if the current branch tip is also somewhere on the remote
if [ `git branch -a --contains $b | grep -c remotes/$remote` != "0" ]
then
echo "$b is safe to delete"
# git branch -D $b
fi
done

set +f

关于git - 如何列出已推送到远程的分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25675594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com