git - 在 Git 中,列出具有未推送提交的分支名称

标签 git branch

给定一个有多个本地分支的项目,每个分支都跟踪一些远程分支,是否有一个命令列出所有未推送提交的分支? (也就是说,即使没有 check out 这些分支。)

我不想看到提交本身,也不想看到最新的分支,我只想看看哪些分支在它们的远程之前。

我试过 git log --branches --not --remotes --simplify-by-decoration --decorate --oneline,但它似乎没有显示我需要的东西。在我当前的 repo 上运行它没有输出,但是在我当前的分支上运行 git status 显示 Your branch is ahead of 'origin/branchname' by 2 commits.

git for-each-ref --format="%(refname:short) %(push:track)"refs/headsgit branch -v 两者显示最新的分支以及需要推送的分支。但是,它们确实都将我当前的分支显示为[ahead 2]

我发现的其他命令,例如。 git log @{u}.., git cherry -v 列出提交本身,而不是分支。

附带问题:为什么 git log --branches --not --remotes --simplify-by-decoration --decorate --oneline 的输出不是包括 git branch -v 前面显示的分支?前一个命令不只是查看哪些 refs/heads 不对应于已知的 Remote 吗?那么列为 [ahead 2] 的分支是否满足此条件?

最佳答案

log--no-walk 选项似乎比 --simplify-by-decoration。我的完整命令是:

git log --branches --not --remotes --no-walk --decorate --oneline

...我将其命名为 unpushed

关于git - 在 Git 中,列出具有未推送提交的分支名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39220870/

相关文章:

git - 超越同时比较 Diff 2 分支

ruby-on-rails - 由于语法,无法从 Heroku 将项目克隆到本地...?

git - 无法使用 Git Bash 提交

linux - 在新版本中使用 git 快捷方式,覆盖旧版本

eclipse - 在 Eclipse java 项目中,将 git 存储库从旧的更改为新的

svn - 查找哪些分支正在修改文件

xcode - 为什么在我的 Mac 上运行的 Jenkins 不能连接到本地 git 仓库?

database - 数据库和 “branch”

svn - 如何使用 subversion 管理生产/测试/开发配置信息?

由于文件太大,已经删除,git 阻止推送