我如何查看我所做的任何尚未推送到远程存储库的本地提交?有时,git状态会显示我的分支是在origin/master之前提交的X,但并不总是这样。

这是我安装Git的bug,还是我遗漏了什么?


当前回答

在当前分支中查找未推送提交的便捷数字别名:

alias unpushed = !GIT_CURRENT_BRANCH=$(git name-rev --name-only HEAD) && git log origin/$GIT_CURRENT_BRANCH..$GIT_CURRENT_BRANCH --oneline

它的基本作用是:

git log origin/branch..branch

而且还确定当前分支名称。

其他回答

我使用以下别名仅获取已提交但尚未推送(针对当前分支)的文件列表(以及状态)

git config --global alias.unpushed \
"diff origin/$(git name-rev --name-only HEAD)..HEAD --name-status"

那么只需执行以下操作:

git unpushed

我建议你去看剧本https://github.com/badele/gitcheck,我已经编写了这个脚本,用于一次性签入所有git存储库,它显示了谁没有提交,谁没有推送/拉取。

这里是一个示例结果

git cherry -v

这将列出您的本地评论历史记录(尚未推送)以及相应的消息

如上所述:

git diff origin/master。。头部

但如果您使用的是gitgui

打开gui界面后,选择“Repository”->在“Visualize History”下

注意:有些人喜欢使用CMDPrompt/Terminal,而有些人则喜欢使用GitGUI(为了简单起见)

要轻松列出所有分支中的所有未推送提交,可以使用以下命令:

 git log --branches  @{u}..