Git找出我推送的最后一次提交

chr*_*989 11 git

我想找出我推动的最后一件事,不是我提交的最后一件事,而是推动了.

这有git命令吗?

上下文: 我想在将dev_branch与master分支合并之前压缩一些提交但是我被告知你不能重新绑定任何已经被推送的东西(这是真的吗?).

所以我想知道我在这个rebase中不能包含的最后一次提交是什么.

cdh*_*wie 26

如果你的意思是你推到master分支的最后一次提交,那么假设您的遥控器是origin:

git rev-parse origin/master
Run Code Online (Sandbox Code Playgroud)

这将显示原始master分支的提示的提交ID origin,因为您的本地存储库当前知道. 这可能意味着提交是其他人的提交,如果其他人在您执行后推送提交并且您已经fetch编写了该分支.

git show -p origin/master
Run Code Online (Sandbox Code Playgroud)

此命令将为您提供有关提交的信息,包括提交ID,作者,日志消息和对其父提交的差异.


我最喜欢的Git命令之一就是进行这种检查:

git log --pretty=oneline --abbrev-commit --graph --decorate --all
Run Code Online (Sandbox Code Playgroud)

这将显示提交历史记录的一个很好的ASCII艺术图表,每个提交将显示任何针对它的引用.通过这种方式,您可以一目了然地查看历史记录中的分支和合并,并轻松查看origin/master与您自己相关的位置master.

  • 如果你已经推动了你的开发分支,那么挤压它是一个坏主意,因为其他人可以自由分支你的工作.如果它是公开的,请不要更改它.如果它不是公共的,那么`git rebase -i`将允许您选择要在历史记录中保留哪些不同的提交以及您想要压缩到哪些提交.`git merge --squash`只会让你有机会创建一个提交,所以最终它取决于你想要多少个提交对象. (2认同)