从git log --graph中排除远程分支

6
我想展示一个简单的关系图,展示所有我的git分支之间的关系。到目前为止,我使用的最接近的命令是:

git log --graph --oneline --branches --decorate --simplify-by-decoration

然而,我所工作的项目有很多远程分支,由其他开发人员使用,而我并不关心它们,它们的包含使得看到我的分支之间的联系变得困难。我尝试添加 --not --remotes="*",但这会消除太多的提交,以至于我完全失去树形结构,只得到像 branch -v 的列表。

有什么建议吗?

编辑:我希望找到使用标准命令行工具的最佳解决方案,因为我通常不在自己的计算机上工作,不能依赖其他第三方软件的安装。


1
从您的存储库中删除您不关心的分支。您的存储库是您自己的。您可以随时从上游获取它们。为了实现(几乎)相同的效果,您可以克隆您的存储库到本地并在副本中工作,此时没有任何远程出现。 - jthill
@jthill 那可能是正确的方法,尽管新分支相当经常被创建。 - pavon
2个回答

2
这里有一个粗略但有效的方法:
temp=`mktemp -u`
git clone -s --bare `git rev-parse --git-dir` $temp
git --git-dir=$temp log --graph --decorate --oneline --branches --simplify-by-decoration
rm -rf $temp
< p > -s 选项告诉 git 进行超轻量级克隆,而 git log 不需要工作树。 < /p >

1
使用像gitg(Linux)/ gitx(OSX)这样的图形化git工具,您可以只选择本地分支,如下所示:

enter image description here


抱歉,我应该提到我大部分时间都在亭子和实验室工作,没有安装新软件的能力。我们有gitk,但它的过滤功能似乎与命令行git工具相同。 - pavon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接