当查看历史时,如何知道哪个Git承诺在我的分支中挤压

当查看历史时,如何知道哪个Git承诺在我的分支中挤压,git,git-rebase,git-squash,Git,Git Rebase,Git Squash,与许多我们喜欢压缩提交的地方一样,在合并到master之前,在我们的功能分支中 为此,我们经常在合并前使用交互式rebase(git-rebase-i HEAD~10)挤压提交 我如何知道哪个承诺在分支内挤压 如果我执行了git日志,我会看到提交的历史记录,以及之前提交给master的记录。 有没有一种简单的方法可以查看/知道哪些提交是在该分支上进行的,哪些提交是在主分支上进行的git history似乎没有以明显的方式区分它们。我想我知道哪个是这个分支的第一个提交-有没有简单的方法来确定 gi

与许多我们喜欢压缩提交的地方一样,在合并到master之前,在我们的功能分支中

为此,我们经常在合并前使用交互式rebase(
git-rebase-i HEAD~10
)挤压提交

我如何知道哪个承诺在分支内挤压

如果我执行了git日志,我会看到提交的历史记录,以及之前提交给master的记录。
有没有一种简单的方法可以查看/知道哪些提交是在该分支上进行的,哪些提交是在主分支上进行的
git history
似乎没有以明显的方式区分它们。我想我知道哪个是这个分支的第一个提交-有没有简单的方法来确定

git rebase -i master
指示git选择分支上的所有提交,从分支和主节点的共同祖先之后的提交开始,结果将放在主节点之上

git log --graph --oneline --decorate master yourbranch

将日志显示为一棵树(具有一些令人印象深刻的ASCII艺术)。

当您编写代码时,如果您知道您提交的工作最终将被压缩到另一个提交中,您可以使用
修复
作为提交消息,git将自动重新排列并挤压重基上的提交

这对于维护原子提交的概念特别有用,在原子提交中,提交是一个有意义的工作块,这与历史记录中上次提交的
oops固定打字错误相对应,然后尝试记住在哪里挤压内容

至于检查图表,我推荐Aasmund的答案,即与一些装饰器一起使用
git log
。我个人使用git扩展是因为我喜欢它的提交窗口和图形可视化,而在powershell中使用漂亮的git来处理其他一切


如果希望别名以交互方式重新基址回到起始基址,可以使用
git-rebase-i$(git-merge-base-master HEAD)
。这将使你目前的头部位置,并重新基地的所有方式回到你开始。我发现这对于合并前压缩我的工作很有用。

使用
@{u}
而不是
HEAD~X