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

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


当前回答

我以前做过一次提交,没有推送到任何分支,也没有远程或本地。只是承诺。其他答案对我没有任何作用,但有:

git reflog

在那里我找到了我的承诺。

其他回答

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

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

那么只需执行以下操作:

git unpushed

显示本地但非上游的所有提交:

git log @{u}..

@{u} 或@{upstream}表示当前分支的上游分支(有关详细信息,请参阅git-rev-parse-help或git-help修订版)。

git cherry -v

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

我以前做过一次提交,没有推送到任何分支,也没有远程或本地。只是承诺。其他答案对我没有任何作用,但有:

git reflog

在那里我找到了我的承诺。

如果未推出的提交数量是一个位数,通常是一个,那么最简单的方法是:

$ git checkout

git的回应是告诉你,相对于你的起源,你“领先N个提交”。所以现在在查看日志时,请记住这个数字。如果您“领先3次提交”,则历史上前3次提交仍然是私有的。