Git branch -a显示远程分支和本地分支。
Git branch -r显示远程分支。
是否有一种方法只列出本地分支?
Git branch -a显示远程分支和本地分支。
Git branch -r显示远程分支。
是否有一种方法只列出本地分支?
当前回答
关于如何删除本地分支的帖子有一个很好的答案。在其中,下面的代码构建了一个命令来列出本地分支:
git branch -vv | cut -c 3- | awk '$3 !~/\[/ { print $1 }'
关于这个命令是如何导出的,答案有一个很好的解释,所以我建议你去阅读那篇文章。
其他回答
如果前导星号是一个问题,我将按如下方式管道git分支
git branch | awk -F ' +' '! /\(no branch\)/ {print $2}'
这也消除了“(无分支)”线,显示当你有分离的头。
最直接的方法之一是
git for-each-ref --format='%(refname:short)' refs/heads/
这也适用于脚本。
下面是如何列出没有相同名称的远程分支的本地分支:
git branch | sed 's|* | |' | sort > local
git branch -r | sed 's|origin/||' | sort > remote
comm -23 local remote
git branch -a -所有分支。
git branch -r仅用于远程分支。
git branch -只支持本地分支。
PowerShell用户可以使用它的Compare-Object cmdlet来做这样的事情:
function match-branch {
$localBranches = ((git branch -l) -replace "\*", "") -replace " ", ""
$remoteBranches = (((git branch -r) -replace "\*", "") -replace " ", "") -replace "origin/", ""
Compare-Object -ReferenceObject $localBranches -DifferenceObject $remoteBranches -IncludeEqual
| Select-Object @{Label = "branch"; Expression = { $_.InputObject } },
@{Label = ”both”; Expression = { $_.SideIndicator -eq "==" } },
@{Label = ”remoteOnly”; Expression = { $_.SideIndicator -eq "=>" } },
@{Label = ”localOnly”; Expression = { $_.SideIndicator -eq "<=" } }
}
示例输出
branch both remoteOnly localOnly
------ ---- ---------- ---------
master True False False
HEAD->master False True False
renamed False True False