Git分支--merged/--no merged和--squash选项

Git分支--merged/--no merged和--squash选项,git,merge,squash,Git,Merge,Squash,git分支--merged似乎不能很好地处理--squash 如果执行正常的git合并,那么git分支--merged会告诉您哪些分支已经合并。但是,如果使用--squash选项,则情况并非如此,即使生成的树是相同的 我怀疑这是git的缺陷,我想知道我是否遗漏了一些git fu,或者我是否误解了一些东西 简而言之:我想使用--squash,但也希望git告诉我,我挤压到另一个分支中的分支是否已被合并。从这里到那里是不可能的(正如指导者所说)。更准确地说,这没有意义 问题是,gitmerge--s

git分支--merged
似乎不能很好地处理--squash

如果执行正常的
git合并
,那么
git分支--merged
会告诉您哪些分支已经合并。但是,如果使用--squash选项,则情况并非如此,即使生成的树是相同的

我怀疑这是git的缺陷,我想知道我是否遗漏了一些git fu,或者我是否误解了一些东西


简而言之:我想使用--squash,但也希望git告诉我,我挤压到另一个分支中的分支是否已被合并。

从这里到那里是不可能的(正如指导者所说)。更准确地说,这没有意义

问题是,
gitmerge--squash
实际上并没有进行合并。例如,假设您的分支历史如下所示(分支
topic
devel
):

但是如果使用
git merge--squash主题
,则会得到一个新的提交(让我们将其标记为
s
,用于squash):


H⬅ 我⬅ J图形中提交之间的箭头(?)不能在所有浏览器/操作系统中正确呈现。我看到一个问号。回答得好,谢谢你的解释。我认为git能够压缩提交,并且仍然执行三方合并,哦,好吧。我觉得
gitmerge--squash
有点误导;我会选择一个专用的
git壁球
@EdwardThomson:是的,我试过一些箭。我想它更像是一种字体,而不是浏览器和/或操作系统。哦,好吧,我将返回到普通的旧ASCII,用于下一个图表:-)我从不使用
git merge--squash,但我经常使用
git log--first parent
          H ⬅ I ⬅ J     <-- topic
        ⬋
⬅ F ⬅ G
        ⬉
          K ⬅ L         <-- devel
          H ⬅ I ⬅ J     <-- topic
        ⬋         ⬆
⬅ F ⬅ G           ⬆
        ⬉         ⬆
          K ⬅ L ⬅ M     <-- devel
          H ⬅ I ⬅ J     <-- topic
        ⬋
⬅ F ⬅ G
        ⬉
          K ⬅ L ⬅ S     <-- devel