Git合并和历史变化

Git merge and history change

这些是我们目前的分支机构:

现在 feature 从 staging 中诞生,并在此过程中进行了许多提交,其中一些从 staging 和 master 合并。

但当feature从分期诞生。 staging 有几个提交,后来被删除了...

即:

staging: a->b->c->d->e
feature: a->b->c->d->e->f->h->i->j...

但过了一段时间,有人从暂存历史记录中删除了提交 所以现在这是状态

staging: c->d->e
feature: a->b->c->d->e->f->h->i->j...

但更糟糕的是,有更多提交到分期,后来合并到功能

staging: c->d->e->s1->s2->s3
feature: a->b->c->d->e->f->h->i->j->s1->s2->s3->f1->f2

关于如何获得从 featurestaging 的提交差异的任何想法?

因为当我 运行

git show-branch feature staging

我什么也没得到,因为分期已合并到功能中

如果你在功能分支,你可以做

git diff feature staging

这将向您展示从功能到分期的所有差异。您也可以对您的 master 分支执行此操作。

但是,如果您想以更直观的方式查看差异,我建议使用 SourceTree 或 IntelliJ IDE 应用程序,以获得比终端更好的视觉效果。

如果您想查看以前提交的列表,您也可以在您的功能分支中执行 git log

git log staging..feature
git log staging...feature

有关 ..... 语法的说明,请参阅 https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html 上的文档。

https://git-scm.com/docs/gitrevisions#gitrevisions-Theememtwo-dotRangeNotation