2013-03-21 108 views
8

我想找出我推送的最后一个东西,而不是我提交的最后一个东西,但推送。Git找出我推送的最后一个提交

这是否有一个git命令?

语境: 我想我的合并与dev_branch主分支前捉一些提交,但有人告诉我,你不能衍合那些已经推任何东西(这是真的吗?)。

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

回答

24

如果你指的是最后一次提交你推到master分支然后,假设你的遥控器是origin

git rev-parse origin/master 

这将显示您提交的origin来源master分支尖端的ID, 作为您当地的知识库。这可能意味着提交是其他人的提交,如果其他人在你之后推送了提交,并且你自从fetch编辑该分支之后就提交提交。

git show -p origin/master 

这个命令会给你提交的信息,包括提交ID,作者,日志信息,并DIFF其父犯(S)。这样做正是这种检查


我最喜欢的Git命令:

git log --pretty=oneline --abbrev-commit --graph --decorate --all 

这将显示提交历史的一个很好的ASCII艺术图形,每一个提交会显示任何裁判说正在瞄准它。通过这种方式,您可以一眼看到分支机构并合并到历史记录中,并轻松查看origin/master与您自己的master相关的位置。

+0

哇谢谢cdhowie最后的命令是真棒,它真的很有用! 也许我应该问这个在一个单独的问题,而是什么被认为是更好 -git变基-i -git合并--squash 我想要做的,是我的合并的Dev分支与主,但有我的100 +传递压缩到4中。不是1,因为它的历史可能有4个关键点 – chrispepper1989 2013-03-21 16:31:03

+2

如果你推动了你的开发分支,那么压缩它是一个坏主意,因为其他人可以自由地从你的工作中分支出去。如果它是公开的,请不要更改它。如果它不公开,那么'git rebase -i'会让你选择你想保留在历史中的哪些不同的提交,以及你想要压缩到哪些提交。 'git merge --squash'只会让你有机会创建一个提交,所以最终取决于你想要提交多少个提交对象。 – cdhowie 2013-03-21 16:34:44